Class RexCall

  • Direct Known Subclasses:
    Match.RexMRAggCall, RexOver, RexSubQuery, Window.RexWinAggCall

    public class RexCall
    extends RexNode
    An expression formed by a call to an operator with zero or more expressions as operands.

    Operators may be binary, unary, functions, special syntactic constructs like CASE ... WHEN ... END, or even internally generated constructs like implicit type conversions. The syntax of the operator is really irrelevant, because row-expressions (unlike SQL expressions) do not directly represent a piece of source code.

    It's not often necessary to sub-class this class. The smarts should be in the operator, rather than the call. Any extra information about the call can often be encoded as extra arguments. (These don't need to be hidden, because no one is going to be generating source code from this tree.)

    • Field Detail

      • operands

        public final com.google.common.collect.ImmutableList<RexNode> operands
      • SIMPLE_BINARY_OPS

        private static final java.util.Set<SqlKind> SIMPLE_BINARY_OPS
        Simple binary operators are those operators which expects operands from the same Domain.

        Example: simple comparisions (=, <).

        Note: it does not contain IN because that is defined on D x D^n.