public class AndNode extends BinaryLogicalOperatorNode
QueryTreeNode.WordUtils
shortCircuitValue
AND, BinaryArgTypes, BinaryMethodNames, BinaryOperators, BinaryResultTypes, CONCATENATE, DIVIDE, EQ, GE, GT, LE, leftInterfaceType, leftOperand, LIKE, LT, methodName, MINUS, NE, operator, operatorType, OR, PLUS, receiver, resultInterfaceType, rightInterfaceType, rightOperand, TIMES, XMLEXISTS_OP, XMLQUERY_OP
dataTypeServices, transformed
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX, depth, isPrivilegeCollectionRequired
Constructor and Description |
---|
AndNode() |
Modifier and Type | Method and Description |
---|---|
ValueNode |
bindExpression(FromList fromList,
SubqueryList subqueryList,
java.util.List<AggregateNode> aggregateVector)
Bind this logical operator.
|
ValueNode |
changeToCNF(boolean underTopAndNode)
Finish putting an expression into conjunctive normal
form.
|
(package private) ValueNode |
eliminateNots(boolean underNotNode)
Eliminate NotNodes in the current query block.
|
void |
init(java.lang.Object leftOperand,
java.lang.Object rightOperand)
Initializer for an AndNode
|
(package private) void |
postBindFixup()
Do bind() by hand for an AndNode that was generated after bind(),
eg by putAndsOnTop().
|
ValueNode |
preprocess(int numTables,
FromList outerFromList,
SubqueryList outerSubqueryList,
PredicateList outerPredicateList)
Preprocess an expression tree.
|
ValueNode |
putAndsOnTop()
Do the 1st step in putting an expression into conjunctive normal
form.
|
boolean |
verifyChangeToCNF()
Verify that changeToCNF() did its job correctly.
|
boolean |
verifyPutAndsOnTop()
Verify that putAndsOnTop() did its job correctly.
|
generateExpression, init, resolveLogicalBinaryOperator, verifyEliminateNots
acceptChildren, bindXMLQuery, categorize, checkCRLevel, constantExpression, genSQLJavaSQLTree, getChildren, getHashableJoinColumnReference, getLeftOperand, getOperatorString, getOrderableVariantType, getReceiverInterfaceName, getRightOperand, getTableNumber, hashCode, init, init, isConstantExpression, isEquivalent, nonZeroCardinality, printSubNodes, remapColumnReferencesToExpressions, setHashableJoinColumnReference, setLeftOperand, setLeftRightInterfaceType, setMethodName, setOperator, setRightOperand, toString
pushSqlXmlUtil
bindExpression, checkIsBoolean, checkTopPredicatesForEqualsConditions, copyFields, equals, evaluateConstantExpressions, explainDisplay, genEqualsFalseTree, generate, generateFilter, genIsNullTree, getClone, getColumnName, getConstantValueAsObject, getCoordinates, getDataValueFactory, getSchemaName, getSourceResultColumn, getTableName, getTablesReferenced, getTransformed, getTypeCompiler, getTypeId, getTypeServices, init, isBinaryEqualsOperatorNode, isBooleanFalse, isBooleanTrue, isCloneable, isInListProbeNode, isParameterNode, isRelationalOperator, isSameNodeType, joinSelectivity, optimizableEqualityNode, requiresTypeFromContext, scanSelectivity, selectivity, setCollationInfo, setCollationInfo, setCollationUsingCompilationSchema, setCollationUsingCompilationSchema, setNullability, setTransformed, setType, setType, setType, toHTMLString, updatableByCursor
accept, accept, bindOffsetFetch, bindRowMultiSet, bindUserCatalogType, bindUserType, buildTree, checkReliability, checkReliability, childParentMap, collectReferencedColumns, convertDefaultNode, createTypeDependency, debugFlush, debugPrint, disablePrivilegeCollection, formatNodeString, foundString, generateAuthorizeCheck, getBeginOffset, getClassFactory, getCompilerContext, getConstantNode, getConstantNodeType, getContextManager, getCursorInfo, getDataDictionary, getDependencyManager, getEndOffset, getExecutionFactory, getExtraInformation, 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, markReferencedResultColumns, nodeHeader, orReliability, parseStatement, printExplainInformation, printExplainInformation, printExplainInformation, printExplainInformationForActivation, printLabel, printRuntimeInformation, projectionListPruning, referencesSessionSchema, resolveTableToSynonym, rsnChainMap, setBeginOffset, setContextManager, setDepth, setEndOffset, setNodeType, setRefActionInfo, spaceToLevel, treePrint, treePrint, verifyClassExist
public void init(java.lang.Object leftOperand, java.lang.Object rightOperand)
init
in interface Node
init
in class QueryTreeNode
leftOperand
- The left operand of the ANDrightOperand
- The right operand of the ANDpublic ValueNode bindExpression(FromList fromList, SubqueryList subqueryList, java.util.List<AggregateNode> aggregateVector) throws StandardException
bindExpression
in class BinaryLogicalOperatorNode
fromList
- The query's FROM listsubqueryList
- The subquery list being built as we find SubqueryNodesaggregateVector
- The aggregate vector being built as we find AggregateNodesStandardException
- Thrown on errorpublic ValueNode preprocess(int numTables, FromList outerFromList, SubqueryList outerSubqueryList, PredicateList outerPredicateList) throws StandardException
preprocess
in class BinaryOperatorNode
numTables
- Number of tables in the DML StatementouterFromList
- FromList from outer query blockouterSubqueryList
- SubqueryList from outer query blockouterPredicateList
- PredicateList from outer query blockStandardException
- Thrown on errorValueNode eliminateNots(boolean underNotNode) throws StandardException
eliminateNots
in class ValueNode
underNotNode
- Whether or not we are under a NotNode.StandardException
- Thrown on errorpublic ValueNode putAndsOnTop() throws StandardException
putAndsOnTop
in class ValueNode
StandardException
- Thrown on errorpublic boolean verifyPutAndsOnTop()
verifyPutAndsOnTop
in class ValueNode
public ValueNode changeToCNF(boolean underTopAndNode) throws StandardException
changeToCNF
in class ValueNode
underTopAndNode
- Whether or not we are under a top level AndNode.StandardException
- Thrown on errorpublic boolean verifyChangeToCNF()
verifyChangeToCNF
in class ValueNode
void postBindFixup() throws StandardException
StandardException
- Thrown on error