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
public final class BooleanConstantNode extends ConstantNode
-
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean
booleanValue
(package private) boolean
unknownValue
-
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 Constructor Description BooleanConstantNode(boolean value, ContextManager cm)
BooleanConstantNode(ContextManager cm)
BooleanConstantNode(TypeId t, ContextManager cm)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) ValueNode
eliminateNots(boolean underNotNode)
Eliminate NotNodes in the current query block.(package private) void
generateConstant(ExpressionClassBuilder acb, MethodBuilder mb)
This generates the proper constant.(package private) java.lang.Object
getConstantValueAsObject()
Return an Object representing the bind time value of this expression tree.(package private) java.lang.String
getValueAsString()
Return the value as a string.(package private) boolean
isBooleanFalse()
Does this represent a false constant.(package private) boolean
isBooleanTrue()
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
-
-
-
-
Constructor Detail
-
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 Detail
-
getConstantValueAsObject
java.lang.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
java.lang.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
public double selectivity(Optimizable optTable)
The default selectivity for value nodes is 50%. This is overridden in specific cases, such as the RelationalOperators.- Overrides:
selectivity
in classValueNode
-
eliminateNots
ValueNode eliminateNots(boolean underNotNode)
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
void generateConstant(ExpressionClassBuilder acb, MethodBuilder mb)
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
void setValue(DataValueDescriptor value)
Set the value in this ConstantNode.- Overrides:
setValue
in classConstantNode
-
-