Class BooleanConstantNode
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.BooleanConstantNode
- All Implemented Interfaces:
Visitable
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) boolean
(package private) boolean
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
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) ValueNode
eliminateNots
(boolean underNotNode) Eliminate NotNodes in the current query block.(package private) void
This generates the proper constant.(package private) Object
Return an Object representing the bind time value of this expression tree.(package private) String
Return the value as a string.(package private) boolean
Does this represent a false constant.(package private) boolean
Does this represent a true constant.double
selectivity
(Optimizable optTable) The default selectivity for value nodes is 50%.(package private) void
setValue
(DataValueDescriptor value) Set the value in this ConstantNode.Methods inherited from class org.apache.derby.impl.sql.compile.ConstantNode
bindExpression, constantExpression, generateExpression, getClone, getOrderableVariantType, getValue, isCloneable, isConstantExpression, isEquivalent, isNull, toString
Methods inherited from class org.apache.derby.impl.sql.compile.ValueNode
bindExpression, categorize, changeToCNF, checkIsBoolean, checkTopPredicatesForEqualsConditions, copyFields, evaluateConstantExpressions, genEqualsFalseTree, generate, genIsNullTree, genSQLJavaSQLTree, getColumnName, getDataValueFactory, getSchemaName, getSourceResultColumn, getTableName, getTablesReferenced, getTransformed, getTypeCompiler, getTypeId, getTypeServices, isBinaryEqualsOperatorNode, isInListProbeNode, isParameterNode, isRelationalOperator, isSameNodeKind, optimizableEqualityNode, preprocess, putAndsOnTop, remapColumnReferencesToExpressions, requiresTypeFromContext, 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
-
booleanValue
boolean booleanValue -
unknownValue
boolean unknownValue
-
-
Constructor Details
-
BooleanConstantNode
BooleanConstantNode(ContextManager cm) throws StandardException - Parameters:
cm
- context manager- Throws:
StandardException
-
BooleanConstantNode
BooleanConstantNode(boolean value, ContextManager cm) throws StandardException - Throws:
StandardException
-
BooleanConstantNode
BooleanConstantNode(TypeId t, ContextManager cm) throws StandardException - Throws:
StandardException
-
-
Method Details
-
getConstantValueAsObject
Object 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.)
-
getValueAsString
String getValueAsString()Return the value as a string.- Returns:
- The value as a string.
-
isBooleanTrue
boolean isBooleanTrue()Does this represent a true constant.- Overrides:
isBooleanTrue
in classValueNode
- Returns:
- Whether or not this node represents a true constant.
-
isBooleanFalse
boolean isBooleanFalse()Does this represent a false constant.- Overrides:
isBooleanFalse
in classValueNode
- Returns:
- Whether or not this node represents a false constant.
-
selectivity
The default selectivity for value nodes is 50%. This is overridden in specific cases, such as the RelationalOperators.- Overrides:
selectivity
in classValueNode
-
eliminateNots
Eliminate NotNodes in the current query block. We traverse the tree, inverting ANDs and ORs and eliminating NOTs as we go. We stop at ComparisonOperators and boolean expressions. We invert ComparisonOperators and replace boolean expressions with boolean expression = false. NOTE: Since we do not recurse under ComparisonOperators, there still could be NotNodes left in the tree.- Overrides:
eliminateNots
in classValueNode
- Parameters:
underNotNode
- Whether or not we are under a NotNode.- Returns:
- The modified expression
-
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 code to place the code
-
setValue
Set the value in this ConstantNode.- Overrides:
setValue
in classConstantNode
-