public class RexSubQuery extends RexCall
Modifier | Constructor and Description |
---|---|
private |
RexSubQuery(RelDataType type,
SqlOperator op,
com.google.common.collect.ImmutableList<RexNode> operands,
RelNode rel) |
Modifier and Type | Method and Description |
---|---|
<R,P> R |
accept(RexBiVisitor<R,P> visitor,
P arg)
Accepts a visitor with a payload, dispatching to the right overloaded
RexBiVisitor.visitInputRef(RexInputRef, Object) visitXxx} method. |
<R> R |
accept(RexVisitor<R> visitor)
Accepts a visitor, dispatching to the right overloaded
visitXxx method. |
RexSubQuery |
clone(RelDataType type,
java.util.List<RexNode> operands)
Creates a new call to the same operator with different operands.
|
RexSubQuery |
clone(RelNode rel) |
protected java.lang.String |
computeDigest(boolean withType) |
static RexSubQuery |
exists(RelNode rel)
Creates an EXISTS sub-query.
|
static RexSubQuery |
in(RelNode rel,
com.google.common.collect.ImmutableList<RexNode> nodes)
Creates an IN sub-query.
|
static RexSubQuery |
scalar(RelNode rel)
Creates a scalar sub-query.
|
static RexSubQuery |
some(RelNode rel,
com.google.common.collect.ImmutableList<RexNode> nodes,
SqlQuantifyOperator op)
Creates a SOME sub-query.
|
(package private) static RelDataType |
type(RelNode rel,
com.google.common.collect.ImmutableList<RexNode> nodes) |
appendOperands, equals, getKind, getOperands, getOperator, getType, hashCode, isAlwaysFalse, isAlwaysTrue, toString
public final RelNode rel
private RexSubQuery(RelDataType type, SqlOperator op, com.google.common.collect.ImmutableList<RexNode> operands, RelNode rel)
public static RexSubQuery in(RelNode rel, com.google.common.collect.ImmutableList<RexNode> nodes)
public static RexSubQuery some(RelNode rel, com.google.common.collect.ImmutableList<RexNode> nodes, SqlQuantifyOperator op)
There is no ALL. For x comparison ALL (sub-query)
use instead
NOT (x inverse-comparison SOME (sub-query))
.
If comparison
is >
then negated-comparison
is <=
, and so forth.
Also =SOME is rewritten into IN
static RelDataType type(RelNode rel, com.google.common.collect.ImmutableList<RexNode> nodes)
public static RexSubQuery exists(RelNode rel)
public static RexSubQuery scalar(RelNode rel)
public <R> R accept(RexVisitor<R> visitor)
RexNode
visitXxx
method.
Also see RexUtil.apply(RexVisitor, java.util.List, RexNode)
,
which applies a visitor to several expressions simultaneously.
public <R,P> R accept(RexBiVisitor<R,P> visitor, P arg)
RexNode
RexBiVisitor.visitInputRef(RexInputRef, Object)
visitXxx} method.@Nonnull protected java.lang.String computeDigest(boolean withType)
computeDigest
in class RexCall
public RexSubQuery clone(RelDataType type, java.util.List<RexNode> operands)
RexCall
public RexSubQuery clone(RelNode rel)
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.