Class NumericConstantNode
java.lang.Object
org.apache.derby.impl.sql.compile.QueryTreeNode
org.apache.derby.impl.sql.compile.ValueNode
org.apache.derby.impl.sql.compile.ConstantNode
org.apache.derby.impl.sql.compile.NumericConstantNode
- All Implemented Interfaces:
Visitable
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) final intThis class is used to hold logically different objects for space efficiency.Fields inherited from class ConstantNode
valueFields inherited from class ValueNode
transformedFields inherited from class QueryTreeNode
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_CYCLE, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX -
Constructor Summary
ConstructorsConstructorDescriptionNumericConstantNode(TypeId t, Number value, ContextManager cm) Constructor for a typed null node -
Method Summary
Modifier and TypeMethodDescription(package private) voidThis generates the proper constant.(package private) ObjectReturn an Object representing the bind time value of this expression tree.private intprivate intgetMaxWidth(TypeId t, Object val) private intgetPrecision(TypeId t, Number val) private int(package private) booleanSome node classes represent several logical node types (to reduce footprint), which we call kinds.private voidMethods inherited from class ConstantNode
bindExpression, constantExpression, generateExpression, getClone, getOrderableVariantType, getValue, isCloneable, isConstantExpression, isEquivalent, isNull, setValue, toStringMethods inherited from class ValueNode
bindExpression, categorize, changeToCNF, checkIsBoolean, checkTopPredicatesForEqualsConditions, copyFields, eliminateNots, evaluateConstantExpressions, genEqualsFalseTree, generate, genIsNullTree, genSQLJavaSQLTree, getColumnName, getDataValueFactory, getSchemaName, getSourceResultColumn, getTableName, getTablesReferenced, getTransformed, getTypeCompiler, getTypeId, getTypeServices, isBinaryEqualsOperatorNode, isBooleanFalse, isBooleanTrue, isInListProbeNode, isParameterNode, isRelationalOperator, optimizableEqualityNode, preprocess, putAndsOnTop, remapColumnReferencesToExpressions, requiresTypeFromContext, selectivity, setCollationInfo, setCollationInfo, setCollationUsingCompilationSchema, setCollationUsingCompilationSchema, setNullability, setTransformed, setType, setType, setType, updatableByCursor, verifyChangeToCNF, verifyEliminateNots, verifyPutAndsOnTopMethods inherited from class QueryTreeNode
accept, acceptChildren, addTag, addUDTUsagePriv, addUDTUsagePriv, bindOffsetFetch, bindRowMultiSet, bindUserCatalogType, bindUserType, checkReliability, checkReliability, convertDefaultNode, copyTagsFrom, createTypeDependency, debugFlush, debugPrint, disablePrivilegeCollection, formatNodeString, generateAuthorizeCheck, getBeginOffset, getClassFactory, getCompilerContext, getContext, getContextManager, getDataDictionary, getDependencyManager, getEndOffset, getExecutionFactory, getGenericConstantActionFactory, getIntProperty, getLanguageConnectionContext, getLongProperty, getNullNode, getOffsetOrderedNodes, getOptimizerFactory, getOptimizerTracer, getParameterTypes, getSchemaDescriptor, getSchemaDescriptor, getStatementType, getTableDescriptor, getTypeCompiler, getUDTDesc, isAtomic, isPrivilegeCollectionRequired, isSessionSchema, isSessionSchema, makeConstantAction, makeTableName, makeTableName, nodeHeader, optimizerTracingIsOn, orReliability, parseSearchCondition, parseStatement, printLabel, printSubNodes, referencesSessionSchema, resolveTableToSynonym, setBeginOffset, setEndOffset, setRefActionInfo, stackPrint, taggedWith, treePrint, treePrint, verifyClassExist
-
Field Details
-
K_TINYINT
static final int K_TINYINT- See Also:
-
K_SMALLINT
static final int K_SMALLINT- See Also:
-
K_INT
static final int K_INT- See Also:
-
K_BIGINT
static final int K_BIGINT- See Also:
-
K_DECIMAL
static final int K_DECIMAL- See Also:
-
K_DOUBLE
static final int K_DOUBLE- See Also:
-
K_REAL
static final int K_REAL- See Also:
-
kind
final int kindThis class is used to hold logically different objects for space efficiency.kindrepresents the logical object type. See alsoValueNode.isSameNodeKind(ValueNode).
-
-
Constructor Details
-
NumericConstantNode
NumericConstantNode(TypeId t, ContextManager cm) throws StandardException Constructor for a typed null node- Parameters:
t- typecm- context manager- Throws:
StandardException
-
NumericConstantNode
NumericConstantNode(TypeId t, Number value, ContextManager cm) throws StandardException - Parameters:
value- An object containing the value of the constant.cm- context manager- Throws:
StandardException
-
-
Method Details
-
getPrecision
- Throws:
StandardException
-
getScale
- Throws:
StandardException
-
getMaxWidth
- Throws:
StandardException
-
getKind
-
setValue
- Throws:
StandardException
-
getConstantValueAsObject
Return an Object representing the bind time value of this expression tree. If the expression tree does not evaluate to a constant at bind time then we return null. This is useful for bind time resolution of VTIs. RESOLVE: What do we do for primitives?- Overrides:
getConstantValueAsObjectin classValueNode- Returns:
- An Object representing the bind time value of this expression tree. (null if not a bind time constant.)
- Throws:
StandardException- Thrown on error
-
generateConstant
This generates the proper constant. It is implemented by every specific constant node (e.g. IntConstantNode).- Specified by:
generateConstantin classConstantNode- Parameters:
acb- The ExpressionClassBuilder for the class being builtmb- The method the expression will go into- Throws:
StandardException- Thrown on error
-
isSameNodeKind
Description copied from class:ValueNodeSome node classes represent several logical node types (to reduce footprint), which we call kinds. This means that implementations ofValueNode.isEquivalent(ValueNode)cannot always just useinstanceofto check if the other node represents the same kind. Hence this method needs to be overridden by all node classes that represent several kinds. This default implementation does not look at kinds. It is only called from implementations ofisEquivalent.- Overrides:
isSameNodeKindin classValueNode- Parameters:
o- The other value node whose kind we want to compare with.- Returns:
trueifthisandorepresent the same logical node type, i.e. kind.
-