public abstract class RexNode extends Object
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.
| Constructor and Description |
|---|
RexNode() |
| Modifier and Type | Method and Description |
|---|---|
abstract <R> R |
accept(RexVisitor<R> visitor)
Accepts a visitor, dispatching to the right overloaded
visitXxx method. |
SqlKind |
getKind()
Returns the kind of node this is.
|
abstract RelDataType |
getType() |
boolean |
isA(Collection<SqlKind> kinds) |
boolean |
isA(SqlKind kind) |
boolean |
isAlwaysFalse()
Returns whether this expression always returns false.
|
boolean |
isAlwaysTrue()
Returns whether this expression always returns true.
|
String |
toString() |
protected String digest
public abstract RelDataType getType()
public boolean isAlwaysTrue()
TRUE.)public boolean isAlwaysFalse()
FALSE.)public boolean isA(SqlKind kind)
public boolean isA(Collection<SqlKind> kinds)
public SqlKind getKind()
public abstract <R> R accept(RexVisitor<R> visitor)
visitXxx method.
Also see RexUtil.apply(RexVisitor, java.util.List, RexNode),
which applies a visitor to several expressions simultaneously.
Copyright © 2012–2015 The Apache Software Foundation. All rights reserved.