[GLUTEN-12597][CORE] Remove unused vendored Substrait proto files and dead proto-based type derivation - #12598
Merged
zhouyuan merged 1 commit intoJul 23, 2026
Conversation
… dead proto-based type derivation Delete four vendored Substrait proto files that carry no live message types in Gluten and were removed upstream (substrait-io/substrait#952 and apache#940): capabilities.proto, function.proto, parameterized_types.proto, type_expressions.proto. Their generated headers were only referenced by dangling #include lines in cpp/velox/substrait/SubstraitParser.h (the substrait::Capabilities/FunctionSignature/ParameterizedType/DerivationExpression types are used nowhere in the native code), which are removed here as well. type_expressions.proto's DerivationExpression had one JVM consumer, the org.apache.gluten.substrait.derivation package (DerivationExpressionNode, DerivationExpressionBuilder, BinaryOPNode, DerivationFP64TypeNode). That package is orphaned (no callers in the producer, native backends, or tests), so it is removed together with the proto. Upstream expresses output-type derivation via the ANTLR grammar in the extension YAMLs, not DerivationExpression protos. Also remove the deprecated Expression.Enum message and its rex_type oneof field (10), reserving the number and name to match upstream (substrait-io/substrait#1086). Expression.Enum is not built by the producer nor parsed by the Velox/ClickHouse backends; enum function arguments use FunctionArgument.enum instead. No functional change. Preparatory cleanup toward rebasing the vendored proto onto Substrait 0.98.0.
nielspardon
force-pushed
the
feat/substrait-0.98-inc0-dead-removals
branch
from
July 22, 2026 13:01
9cba618 to
ff3641f
Compare
|
Run Gluten Clickhouse CI on x86 |
|
Run Gluten Clickhouse CI on x86 |
This was referenced Jul 27, 2026
25 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes are proposed in this pull request?
Preparatory cleanup for rebasing the vendored Substrait proto onto 0.98.0 (#12597). Removes dead definitions with no functional change:
capabilities.proto,function.proto,parameterized_types.proto,type_expressions.proto.org.apache.gluten.substrait.derivationpackage (DerivationExpressionNode,DerivationExpressionBuilder,BinaryOPNode,DerivationFP64TypeNode) — the sole consumer oftype_expressions.proto'sDerivationExpression. It has no callers in the plan producer, either native backend, or the tests. Upstream expresses output-type derivation via the ANTLR grammar carried in the extension YAMLs, notDerivationExpressionprotos.Expression.Enummessage and itsrex_typeoneof field (10), reserving the number and name to match upstream (feat(protos): remove deprecated Expression.Enum message substrait-io/substrait#1086).Expression.Enumis not built by the producer nor parsed by the Velox/ClickHouse backends; enum function arguments useFunctionArgument.enuminstead.How was this patch tested?
No functional change — pure dead-definition removal. Verified that the vendored proto still compiles (
protocdescriptor-set generation succeeds with no dangling imports or duplicate field numbers), and confirmed via repo-wide search that no JVM code (gluten-substrait, backends) or native code (cpp/velox,cpp-ch/local-engine) references the removed files, the removed package, orExpression.Enum. Covered by the existing JVM and Velox/ClickHouse proto-codegen builds; no new unit test is applicable.Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Opus 4.8)
🤖 Generated with AI