I am trying to "separate" certain subsets of Operators in a query tree and transform them to a more "general" RelNode implementation, that holds the information required to rebuild them. I want to implement something more general than CALC (for more types of operators), that works like this:
Operator1 -> Operator2 -> Operator3 ===Enforcing Rules with certain Conditions==> Operator1 -> (Operator2 -> Operator3) == Operator1 -> MergedOperators2,3 (we can distinguish that this operator is build from Operators 2 and 3) Can anyone suggest a possible starting point?