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 int
This class is used to hold logically different objects for space efficiency.Fields inherited from class org.apache.derby.impl.sql.compile.ConstantNode
value
Fields inherited from class org.apache.derby.impl.sql.compile.ValueNode
transformed
Fields inherited from class org.apache.derby.impl.sql.compile.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) void
This generates the proper constant.(package private) Object
Return an Object representing the bind time value of this expression tree.private int
private int
getMaxWidth
(TypeId t, Object val) private int
getPrecision
(TypeId t, Number val) private int
(package private) boolean
Some node classes represent several logical node types (to reduce footprint), which we call kinds.private void
Methods inherited from class org.apache.derby.impl.sql.compile.ConstantNode
bindExpression, constantExpression, generateExpression, getClone, getOrderableVariantType, getValue, isCloneable, isConstantExpression, isEquivalent, isNull, setValue, toString
Methods inherited from class org.apache.derby.impl.sql.compile.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, verifyPutAndsOnTop
Methods inherited from class org.apache.derby.impl.sql.compile.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.kind
represents the logical object type. See alsoValueNode.isSameNodeKind(org.apache.derby.impl.sql.compile.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:
getConstantValueAsObject
in 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:
generateConstant
in 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:ValueNode
Some node classes represent several logical node types (to reduce footprint), which we call kinds. This means that implementations ofValueNode.isEquivalent(org.apache.derby.impl.sql.compile.ValueNode)
cannot always just useinstanceof
to 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:
isSameNodeKind
in classValueNode
- Parameters:
o
- The other value node whose kind we want to compare with.- Returns:
true
ifthis
ando
represent the same logical node type, i.e. kind.
-