org.apache.derby.impl.sql.compile
Class UnaryDateTimestampOperatorNode
java.lang.Object
org.apache.derby.impl.sql.compile.QueryTreeNode
org.apache.derby.impl.sql.compile.ValueNode
org.apache.derby.impl.sql.compile.OperatorNode
org.apache.derby.impl.sql.compile.UnaryOperatorNode
org.apache.derby.impl.sql.compile.UnaryDateTimestampOperatorNode
- All Implemented Interfaces:
- Node, Visitable
public class UnaryDateTimestampOperatorNode
- extends UnaryOperatorNode
This class implements the timestamp( x) and date(x) functions.
These two functions implement a few special cases of string conversions beyond the normal string to
date/timestamp casts.
| Fields inherited from class org.apache.derby.impl.sql.compile.UnaryOperatorNode |
methodName, operand, operator, receiverInterfaceType, resultInterfaceType, UnaryArgTypes, UnaryMethodNames, UnaryOperators, UnaryResultTypes, XMLPARSE_OP, XMLSERIALIZE_OP |
| Methods inherited from class org.apache.derby.impl.sql.compile.UnaryOperatorNode |
acceptChildren, addXmlOpMethodParams, bindOperand, bindParameter, categorize, constantExpression, getOperand, getOperatorString, getOrderableVariantType, getParameterOperand, getReceiverInterfaceName, init, init, isConstantExpression, isEquivalent, preprocess, printSubNodes, remapColumnReferencesToExpressions, setMethodName, setOperator, toString |
| Methods inherited from class org.apache.derby.impl.sql.compile.ValueNode |
bindExpression, changeToCNF, checkIsBoolean, checkTopPredicatesForEqualsConditions, copyFields, eliminateNots, evaluateConstantExpressions, genEqualsFalseTree, generate, generateFilter, genIsNullTree, genSQLJavaSQLTree, getClone, getColumnName, getConstantValueAsObject, getDataValueFactory, getSchemaName, getSourceResultColumn, getTableName, getTablesReferenced, getTransformed, getTypeCompiler, getTypeId, getTypeServices, init, isBinaryEqualsOperatorNode, isBooleanFalse, isBooleanTrue, isCloneable, isInListProbeNode, isParameterNode, isRelationalOperator, isSameNodeType, optimizableEqualityNode, putAndsOnTop, requiresTypeFromContext, selectivity, setCollationInfo, setCollationInfo, setCollationUsingCompilationSchema, setCollationUsingCompilationSchema, setNullability, setTransformed, setType, setType, setType, updatableByCursor, verifyChangeToCNF, verifyEliminateNots, verifyPutAndsOnTop |
| Methods inherited from class org.apache.derby.impl.sql.compile.QueryTreeNode |
accept, bindOffsetFetch, bindRowMultiSet, bindUserCatalogType, bindUserType, checkReliability, checkReliability, convertDefaultNode, createTypeDependency, debugFlush, debugPrint, disablePrivilegeCollection, formatNodeString, foundString, generateAuthorizeCheck, getBeginOffset, getClassFactory, getCompilerContext, getContextManager, getCursorInfo, getDataDictionary, getDependencyManager, getEndOffset, getExecutionFactory, getGenericConstantActionFactory, getIntProperty, getLanguageConnectionContext, getNodeFactory, getNodeType, getNullNode, getParameterTypes, getSchemaDescriptor, getSchemaDescriptor, getStatementType, getTableDescriptor, getTypeCompiler, init, init, init, init, init, init, init, init, init, init, isAtomic, isInstanceOf, isPrivilegeCollectionRequired, isSessionSchema, isSessionSchema, makeConstantAction, makeTableName, makeTableName, nodeHeader, orReliability, parseStatement, printLabel, referencesSessionSchema, resolveTableToSynonym, setBeginOffset, setContextManager, setEndOffset, setNodeType, setRefActionInfo, stackPrint, treePrint, treePrint, verifyClassExist |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
TIMESTAMP_METHOD_NAME
private static final java.lang.String TIMESTAMP_METHOD_NAME
- See Also:
- Constant Field Values
DATE_METHOD_NAME
private static final java.lang.String DATE_METHOD_NAME
- See Also:
- Constant Field Values
UnaryDateTimestampOperatorNode
public UnaryDateTimestampOperatorNode()
init
public void init(java.lang.Object operand,
java.lang.Object targetType)
throws StandardException
- Description copied from class:
QueryTreeNode
- Initialize a query tree node.
- Specified by:
init in interface Node- Overrides:
init in class QueryTreeNode
- Parameters:
operand - The operand of the functiontargetType - The type of the result. Timestamp or Date.
- Throws:
StandardException - Thrown on error
bindExpression
public ValueNode bindExpression(FromList fromList,
SubqueryList subqueryList,
java.util.List aggregateVector)
throws StandardException
- Called by UnaryOperatorNode.bindExpression.
If the operand is a constant then evaluate the function at compile time. Otherwise,
if the operand input type is the same as the output type then discard this node altogether.
If the function is "date" and the input is a timestamp then change this node to a cast.
- Overrides:
bindExpression in class UnaryOperatorNode
- Parameters:
fromList - The FROM list for the query this
expression is in, for binding columns.subqueryList - The subquery list being built as we find SubqueryNodesaggregateVector - The aggregate vector being built as we find AggregateNodes
- Returns:
- The new top of the expression tree.
- Throws:
StandardException - Thrown on error
invalidOperandType
private void invalidOperandType()
throws StandardException
- Throws:
StandardException
generateExpression
public void generateExpression(ExpressionClassBuilder acb,
MethodBuilder mb)
throws StandardException
- Do code generation for this unary operator.
- Overrides:
generateExpression in class UnaryOperatorNode
- Parameters:
acb - The ExpressionClassBuilder for the class we're generatingmb - The method the expression will go into
- Throws:
StandardException - Thrown on error
Apache Derby V10.10 Internals - Copyright © 2004,2013 The Apache Software Foundation. All Rights Reserved.