public class SqlLikeOperator extends SqlSpecialOperator
LIKE
and SIMILAR
operators.
Syntax of the two operators:
src-value [NOT] LIKE pattern-value [ESCAPE
escape-value]
src-value [NOT] SIMILAR pattern-value [ESCAPE
escape-value]
NOTE If the NOT
clause is present the
parser
will generate a
equivalent to NOT (src LIKE pattern ...)
SqlSpecialOperator.ReduceResult, SqlSpecialOperator.TokenSequence
Modifier and Type | Field and Description |
---|---|
private boolean |
negated |
kind, MDX_PRECEDENCE, NL
Constructor and Description |
---|
SqlLikeOperator(java.lang.String name,
SqlKind kind,
boolean negated)
Creates a SqlLikeOperator.
|
Modifier and Type | Method and Description |
---|---|
boolean |
checkOperandTypes(SqlCallBinding callBinding,
boolean throwOnFailure)
Checks that the operand values in a
SqlCall to this operator are
valid. |
SqlOperandCountRange |
getOperandCountRange()
Returns a constraint on the number of operands expected by this operator.
|
boolean |
isNegated()
Returns whether this is the 'NOT LIKE' operator.
|
SqlSpecialOperator.ReduceResult |
reduceExpr(int opOrdinal,
SqlSpecialOperator.TokenSequence list)
Reduces a list of operators and arguments according to the rules of
precedence and associativity.
|
void |
unparse(SqlWriter writer,
SqlCall call,
int leftPrec,
int rightPrec)
Writes a SQL representation of a call to this operator to a writer,
including parentheses if the operators on either side are of greater
precedence.
|
getSyntax
acceptCall, acceptCall, adjustType, allowsFraming, argumentMustBeScalar, checkOperandCount, constructArgNameList, constructArgTypeList, constructOperandList, createCall, createCall, createCall, createCall, deriveType, equals, getAllowedSignatures, getAllowedSignatures, getKind, getLeftPrec, getMonotonicity, getMonotonicity, getName, getNameAsId, getOperandTypeChecker, getOperandTypeInference, getReturnTypeInference, getRightPrec, getSignatureTemplate, hashCode, inferReturnType, inferReturnType, isAggregator, isDeterministic, isDynamicFunction, isGroup, isGroupAuxiliary, isName, leftPrec, preValidateCall, requiresDecimalExpansion, requiresOrder, requiresOver, rewriteCall, rightPrec, toString, unparseListClause, unparseListClause, validateCall, validateOperands, validRexOperands
SqlLikeOperator(java.lang.String name, SqlKind kind, boolean negated)
name
- Operator namekind
- Kindnegated
- Whether this is 'NOT LIKE'public boolean isNegated()
public SqlOperandCountRange getOperandCountRange()
SqlOperator
SqlOperandTypeChecker
associated with this
operator.getOperandCountRange
in class SqlOperator
public boolean checkOperandTypes(SqlCallBinding callBinding, boolean throwOnFailure)
SqlOperator
SqlCall
to this operator are
valid. Subclasses must either override this method or supply an instance
of SqlOperandTypeChecker
to the constructor.checkOperandTypes
in class SqlOperator
callBinding
- description of callthrowOnFailure
- whether to throw an exception if check fails
(otherwise returns false in that case)public void unparse(SqlWriter writer, SqlCall call, int leftPrec, int rightPrec)
SqlOperator
The default implementation of this method delegates to
SqlSyntax.unparse(org.apache.calcite.sql.SqlWriter, org.apache.calcite.sql.SqlOperator, org.apache.calcite.sql.SqlCall, int, int)
.
unparse
in class SqlOperator
public SqlSpecialOperator.ReduceResult reduceExpr(int opOrdinal, SqlSpecialOperator.TokenSequence list)
SqlSpecialOperator
The default implementation throws
UnsupportedOperationException
.
reduceExpr
in class SqlSpecialOperator
opOrdinal
- indicating the ordinal of the current operator in the list
on which a possible reduction can be madelist
- List of alternating
SqlParserUtil.ToTreeListItem
and
SqlNode
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.