public class SqlMatchRecognize extends SqlCall
Modifier and Type | Class and Description |
---|---|
static class |
SqlMatchRecognize.AfterOption
Options for
AFTER MATCH clause. |
static class |
SqlMatchRecognize.RowsPerMatchOption
Options for
ROWS PER MATCH . |
static class |
SqlMatchRecognize.SqlMatchRecognizeOperator
An operator describing a MATCH_RECOGNIZE specification.
|
Modifier and Type | Field and Description |
---|---|
private SqlNode |
after |
private SqlLiteral |
interval |
private SqlNodeList |
measureList |
static int |
OPERAND_AFTER |
static int |
OPERAND_INTERVAL |
static int |
OPERAND_MEASURES |
static int |
OPERAND_ORDER_BY |
static int |
OPERAND_PARTITION_BY |
static int |
OPERAND_PATTERN |
static int |
OPERAND_PATTERN_DEFINES |
static int |
OPERAND_ROWS_PER_MATCH |
static int |
OPERAND_STRICT_END |
static int |
OPERAND_STRICT_START |
static int |
OPERAND_SUBSET |
static int |
OPERAND_TABLE_REF |
private SqlNodeList |
orderList |
private SqlNodeList |
partitionList |
private SqlNode |
pattern |
private SqlNodeList |
patternDefList |
private SqlLiteral |
rowsPerMatch |
static SqlPrefixOperator |
SKIP_TO_FIRST |
static SqlPrefixOperator |
SKIP_TO_LAST |
private SqlLiteral |
strictEnd |
private SqlLiteral |
strictStart |
private SqlNodeList |
subsetList |
private SqlNode |
tableRef |
EMPTY_ARRAY, pos
Constructor and Description |
---|
SqlMatchRecognize(SqlParserPos pos,
SqlNode tableRef,
SqlNode pattern,
SqlLiteral strictStart,
SqlLiteral strictEnd,
SqlNodeList patternDefList,
SqlNodeList measureList,
SqlNode after,
SqlNodeList subsetList,
SqlLiteral rowsPerMatch,
SqlNodeList partitionList,
SqlNodeList orderList,
SqlLiteral interval)
Creates a SqlMatchRecognize.
|
Modifier and Type | Method and Description |
---|---|
SqlNode |
getAfter() |
SqlLiteral |
getInterval() |
SqlKind |
getKind()
Returns the type of node this is, or
SqlKind.OTHER if it's nothing special. |
SqlNodeList |
getMeasureList() |
java.util.List<SqlNode> |
getOperandList() |
SqlOperator |
getOperator() |
SqlNodeList |
getOrderList() |
SqlNodeList |
getPartitionList() |
SqlNode |
getPattern() |
SqlNodeList |
getPatternDefList() |
SqlLiteral |
getRowsPerMatch() |
SqlLiteral |
getStrictEnd() |
SqlLiteral |
getStrictStart() |
SqlNodeList |
getSubsetList() |
SqlNode |
getTableRef() |
void |
setOperand(int i,
SqlNode operand)
Changes the value of an operand.
|
void |
unparse(SqlWriter writer,
int leftPrec,
int rightPrec)
Writes a SQL representation of this node to a writer.
|
void |
validate(SqlValidator validator,
SqlValidatorScope scope)
Validates this call.
|
accept, clone, equalsDeep, findValidOptions, getCallSignature, getFunctionQuantifier, getMonotonicity, isCountStar, isExpanded, operand, operandCount
clone, clone, cloneArray, equalDeep, equalDeep, equalsDeep, getParserPosition, isA, toSqlString, toSqlString, toString, validateExpr
public static final int OPERAND_TABLE_REF
public static final int OPERAND_PATTERN
public static final int OPERAND_STRICT_START
public static final int OPERAND_STRICT_END
public static final int OPERAND_PATTERN_DEFINES
public static final int OPERAND_MEASURES
public static final int OPERAND_AFTER
public static final int OPERAND_SUBSET
public static final int OPERAND_ROWS_PER_MATCH
public static final int OPERAND_PARTITION_BY
public static final int OPERAND_ORDER_BY
public static final int OPERAND_INTERVAL
public static final SqlPrefixOperator SKIP_TO_FIRST
public static final SqlPrefixOperator SKIP_TO_LAST
private SqlNode tableRef
private SqlNode pattern
private SqlLiteral strictStart
private SqlLiteral strictEnd
private SqlNodeList patternDefList
private SqlNodeList measureList
private SqlNode after
private SqlNodeList subsetList
private SqlLiteral rowsPerMatch
private SqlNodeList partitionList
private SqlNodeList orderList
private SqlLiteral interval
public SqlMatchRecognize(SqlParserPos pos, SqlNode tableRef, SqlNode pattern, SqlLiteral strictStart, SqlLiteral strictEnd, SqlNodeList patternDefList, SqlNodeList measureList, SqlNode after, SqlNodeList subsetList, SqlLiteral rowsPerMatch, SqlNodeList partitionList, SqlNodeList orderList, SqlLiteral interval)
public SqlOperator getOperator()
getOperator
in class SqlCall
public SqlKind getKind()
SqlNode
SqlKind.OTHER
if it's nothing special.getKind
in class SqlCall
SqlKind
value, never nullSqlNode.isA(java.util.Set<org.apache.calcite.sql.SqlKind>)
public java.util.List<SqlNode> getOperandList()
getOperandList
in class SqlCall
public void unparse(SqlWriter writer, int leftPrec, int rightPrec)
SqlNode
The leftPrec
and rightPrec
parameters give
us enough context to decide whether we need to enclose the expression in
parentheses. For example, we need parentheses around "2 + 3" if preceded
by "5 *". This is because the precedence of the "*" operator is greater
than the precedence of the "+" operator.
The algorithm handles left- and right-associative operators by giving them slightly different left- and right-precedence.
If SqlWriter.isAlwaysUseParentheses()
is true, we use
parentheses even when they are not required by the precedence rules.
For the details of this algorithm, see SqlCall.unparse(org.apache.calcite.sql.SqlWriter, int, int)
.
public void validate(SqlValidator validator, SqlValidatorScope scope)
SqlCall
The default implementation delegates the validation to the operator's
SqlOperator.validateCall(org.apache.calcite.sql.SqlCall, org.apache.calcite.sql.validate.SqlValidator, org.apache.calcite.sql.validate.SqlValidatorScope, org.apache.calcite.sql.validate.SqlValidatorScope)
. Derived classes may override (as do,
for example SqlSelect
and SqlUpdate
).
public void setOperand(int i, SqlNode operand)
SqlCall
SqlValidator
; use sparingly.setOperand
in class SqlCall
i
- Operand indexoperand
- Operand value@Nonnull public SqlNode getTableRef()
public SqlNode getPattern()
public SqlLiteral getStrictStart()
public SqlLiteral getStrictEnd()
@Nonnull public SqlNodeList getPatternDefList()
@Nonnull public SqlNodeList getMeasureList()
public SqlNode getAfter()
public SqlNodeList getSubsetList()
public SqlLiteral getRowsPerMatch()
public SqlNodeList getPartitionList()
public SqlNodeList getOrderList()
public SqlLiteral getInterval()
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.