Class RexNode

  • Direct Known Subclasses:
    RexCall, RexFieldAccess, RexLiteral, RexRangeRef, RexVariable

    public abstract class RexNode
    extends java.lang.Object
    Row expression.

    Every row-expression has a type. (Compare with SqlNode, which is created before validation, and therefore types may not be available.)

    Some common row-expressions are: RexLiteral (constant value), RexVariable (variable), RexCall (call to operator with operands). Expressions are generally created using a RexBuilder factory.

    All sub-classes of RexNode are immutable.

    • Field Detail

      • digest

        protected java.lang.String digest
    • Constructor Detail

      • RexNode

        public RexNode()
    • Method Detail

      • isAlwaysTrue

        public boolean isAlwaysTrue()
        Returns whether this expression always returns true. (Such as if this expression is equal to the literal TRUE.)
      • isAlwaysFalse

        public boolean isAlwaysFalse()
        Returns whether this expression always returns false. (Such as if this expression is equal to the literal FALSE.)
      • isA

        public boolean isA​(SqlKind kind)
      • isA

        public boolean isA​(java.util.Collection<SqlKind> kinds)
      • getKind

        public SqlKind getKind()
        Returns the kind of node this is.
        Returns:
        Node kind, never null
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public abstract boolean equals​(java.lang.Object obj)

        Every node must implement equals(java.lang.Object) based on its content

        Overrides:
        equals in class java.lang.Object