Class SqlNewOperator

  extended by org.eigenbase.sql.SqlOperator
      extended by org.eigenbase.sql.SqlPrefixOperator
          extended by

public class SqlNewOperator
extends SqlPrefixOperator

SqlNewOperator represents an SQL new specification such as NEW UDT(1, 2). When used in an SqlCall, SqlNewOperator takes a single operand, which is an invocation of the constructor method; but when used in a RexCall, the operands are the initial values to be used for the new instance.

$Id: //open/dev/farrago/src/org/eigenbase/sql/fun/ $
John V. Sichi

Field Summary
Fields inherited from class org.eigenbase.sql.SqlOperator
MaxPrec, NL
Constructor Summary
Method Summary
 boolean requiresDecimalExpansion()
          Method to check if call requires expansion when it has decimal operands.
 SqlNode rewriteCall(SqlValidator validator, SqlCall call)
          Rewrites a call to this operator.
Methods inherited from class org.eigenbase.sql.SqlPrefixOperator
adjustType, getMonotonicity, getSignatureTemplate, getSyntax
Methods inherited from class org.eigenbase.sql.SqlOperator
acceptCall, acceptCall, argumentMustBeScalar, checkOperandCount, checkOperandTypes, createCall, createCall, createCall, createCall, deriveType, equals, getAllowedSignatures, getAllowedSignatures, getKind, getLeftPrec, getName, getOperandCountRange, getOperandTypeChecker, getOperandTypeInference, getReturnTypeInference, getRightPrec, hashCode, inferReturnType, inferReturnType, isAggregator, isDeterministic, isDynamicFunction, isName, leftPrec, preValidateCall, rightPrec, toString, unparse, unparseListClause, unparseListClause, validateCall, validateOperands
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Constructor Detail


public SqlNewOperator()
Method Detail


public SqlNode rewriteCall(SqlValidator validator,
                           SqlCall call)
Description copied from class: SqlOperator
Rewrites a call to this operator. Some operators are implemented as trivial rewrites (e.g. NULLIF becomes CASE). However, we don't do this at createCall time because we want to preserve the original SQL syntax as much as possible; instead, we do this before the call is validated (so the trivial operator doesn't need its own implementation of type derivation methods). The default implementation is to just return the original call without any rewrite.

rewriteCall in class SqlOperator
call - to be rewritten
rewritten call


public boolean requiresDecimalExpansion()
Description copied from class: SqlOperator
Method to check if call requires expansion when it has decimal operands. The default implementation is to return true.

requiresDecimalExpansion in class SqlOperator