public class SqlMultisetQueryConstructor extends SqlSpecialOperator
MULTISET (<query>)
.SqlMultisetValueConstructor
SqlSpecialOperator.ReduceResult, SqlSpecialOperator.TokenSequence
kind, MDX_PRECEDENCE, NL
Modifier | Constructor and Description |
---|---|
|
SqlMultisetQueryConstructor() |
protected |
SqlMultisetQueryConstructor(java.lang.String name,
SqlKind kind) |
Modifier and Type | Method and Description |
---|---|
boolean |
argumentMustBeScalar(int ordinal)
Returns whether the
ordinal th argument to this operator must
be scalar (as opposed to a query). |
boolean |
checkOperandTypes(SqlCallBinding callBinding,
boolean throwOnFailure)
Checks that the operand values in a
SqlCall to this operator are
valid. |
RelDataType |
deriveType(SqlValidator validator,
SqlValidatorScope scope,
SqlCall call)
Derives the type of a call to this operator.
|
private RelDataType |
getComponentType(RelDataTypeFactory typeFactory,
java.util.List<RelDataType> argTypes) |
RelDataType |
inferReturnType(SqlOperatorBinding opBinding)
Infers the return type of an invocation of this operator; only called
after the number and types of operands have already been validated.
|
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, reduceExpr
acceptCall, acceptCall, adjustType, allowsFraming, checkOperandCount, constructArgNameList, constructArgTypeList, constructOperandList, createCall, createCall, createCall, createCall, equals, getAllowedSignatures, getAllowedSignatures, getKind, getLeftPrec, getMonotonicity, getMonotonicity, getName, getNameAsId, getOperandCountRange, getOperandTypeChecker, getOperandTypeInference, getReturnTypeInference, getRightPrec, getSignatureTemplate, hashCode, inferReturnType, isAggregator, isDeterministic, isDynamicFunction, isGroup, isGroupAuxiliary, isName, leftPrec, preValidateCall, requiresDecimalExpansion, requiresOrder, requiresOver, rewriteCall, rightPrec, toString, unparseListClause, unparseListClause, validateCall, validateOperands, validRexOperands
public SqlMultisetQueryConstructor()
protected SqlMultisetQueryConstructor(java.lang.String name, SqlKind kind)
public RelDataType inferReturnType(SqlOperatorBinding opBinding)
SqlOperator
SqlReturnTypeInference
to the constructor.inferReturnType
in class SqlOperator
opBinding
- description of invocation (not necessarily a
SqlCall
)private RelDataType getComponentType(RelDataTypeFactory typeFactory, java.util.List<RelDataType> argTypes)
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 RelDataType deriveType(SqlValidator validator, SqlValidatorScope scope, SqlCall call)
SqlOperator
This method is an intrinsic part of the validation process so, unlike
SqlOperator.inferReturnType(org.apache.calcite.sql.SqlOperatorBinding)
, specific operators would not typically override
this method.
deriveType
in class SqlOperator
validator
- Validatorscope
- Scope of validationcall
- Call to this operatorpublic 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 boolean argumentMustBeScalar(int ordinal)
SqlOperator
ordinal
th argument to this operator must
be scalar (as opposed to a query).
If true (the default), the validator will attempt to convert the argument into a scalar sub-query, which must have one column and return at most one row.
Operators such as SELECT
and EXISTS
override
this method.
argumentMustBeScalar
in class SqlOperator
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.