enum Expr extension on logical level #15297
Unanswered
bertvermeiren
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi,
In order to write some additional logical and physical plan implementations, we do have to create some kind of "composite" logical expression.
Nowadays in the code base you have already existing expression implementations with such composite behaviour like the
ScalarFunction
expression containing other expressions (the arguments) ; theAggregateFunction
containing filtering and order by expressions, etc.Lot's of interfaces/API/traits are working on the
enum Expr
directly :UserLogicalNode::with_exprs_and_inputs
and relatedUserLogicalNode::expressions
Applying optimisation rules on those logical plans by analysing and potentially rewriting expressions.
By not having some customisation, we loose the internal semantics of “composite” logical expressions if those have to be “decomposed” again into existing expression implementations to be used throughout the codebase.
Would it be opportune the have an extension point on logical expression as well, like it has been introduced on the
LogicalPlan::Extension(Extension)
?What are the opinions on this ? Are there other alternatives ? How would such an extension look like ?
Regards, Bert.
Beta Was this translation helpful? Give feedback.
All reactions