public class RexOver extends RexCall
Modifier and Type | Class and Description |
---|---|
private static class |
RexOver.Finder
|
private static class |
RexOver.OverFound
Exception thrown when an OVER is found.
|
Modifier and Type | Field and Description |
---|---|
private boolean |
distinct |
private static RexOver.Finder |
FINDER |
private boolean |
ignoreNulls |
private RexWindow |
window |
Constructor and Description |
---|
RexOver(RelDataType type,
SqlAggFunction op,
java.util.List<RexNode> operands,
RexWindow window,
boolean distinct,
boolean ignoreNulls)
Creates a RexOver.
|
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. |
RexCall |
clone(RelDataType type,
java.util.List<RexNode> operands)
Creates a new call to the same operator with different operands.
|
protected java.lang.String |
computeDigest(boolean withType) |
static boolean |
containsOver(java.util.List<RexNode> exprs,
RexNode condition)
Returns whether an expression list contains an OVER clause.
|
static boolean |
containsOver(RexNode expr)
Returns whether an expression contains an OVER clause.
|
static boolean |
containsOver(RexProgram program)
Returns whether a program contains an OVER clause.
|
SqlAggFunction |
getAggOperator()
Returns the aggregate operator for this expression.
|
RexWindow |
getWindow() |
boolean |
ignoreNulls() |
boolean |
isDistinct() |
appendOperands, equals, getKind, getOperands, getOperator, getType, hashCode, isAlwaysFalse, isAlwaysTrue, toString
private static final RexOver.Finder FINDER
private final RexWindow window
private final boolean distinct
private final boolean ignoreNulls
RexOver(RelDataType type, SqlAggFunction op, java.util.List<RexNode> operands, RexWindow window, boolean distinct, boolean ignoreNulls)
For example, "SUM(DISTINCT x) OVER (ROWS 3 PRECEDING)" is represented as:
SqlStdOperatorTable.SUM
,
RexFieldAccess
("x") }
SqlWindow
(ROWS 3 PRECEDING)
type
- Result typeop
- Aggregate operatoroperands
- Operands listwindow
- Window specificationdistinct
- Aggregate operator is applied on distinct elementspublic SqlAggFunction getAggOperator()
public RexWindow getWindow()
public boolean isDistinct()
public boolean ignoreNulls()
@Nonnull protected java.lang.String computeDigest(boolean withType)
computeDigest
in class RexCall
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.public static boolean containsOver(RexNode expr)
public static boolean containsOver(RexProgram program)
public static boolean containsOver(java.util.List<RexNode> exprs, RexNode condition)
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.