Github user roland-mendix commented on the pull request:
https://github.com/apache/spark/pull/9055#issuecomment-165722584
We've added our own In/Exists - plus Subquery in Select - support to a
partial fork of Spark SQL Catalyst (which we use in transformations from our
own query language to SQL for relational databases). But since In, Exists and
Select projections are Expressions which will then contain LogicalPlans
(Subquery/Select with nested LogicalPlans with potential nested Expressions)
this makes whole-tree transformations kind of convoluted since we''ve got to
deal with 'pivot points' for these 2 types of TreeNodes, where a recursive
transformation can only be done on 1 specific type. Why was the choice made in
Catalyst to make LogicalPlan/QueryPlan and Expression separate subclasses of
TreeNode, instead of e.g. also make QueryPlan inherit from Expression? The code
also contains duplicate functionality, like LeafNode/LeafExpression,
UnaryNode/UnaryExpression and BinaryNode/BinaryExpression. Much obliged.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]