| Modifier and Type | Field and Description |
|---|---|
| private DataTypeDescriptor | dataTypeServices
The data type for this node. |
| pack-priv boolean |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| pack-priv ValueNode | |
| pack-priv ValueNode | Returns: The new top of the expression tree.The FROM list to use for binding fromList, SubqueryList The SubqueryList we are building as we hit
SubqueryNodes. subqueryList, List<AggregateNode> The aggregate list being built as we find AggregateNodes aggregates, boolean forQueryRewrite)Bind this expression. |
| pack-priv boolean | Returns: boolean Whether or not source.expression is a ColumnReference or a VirtualColumnNode.JBitSet with bit map of referenced FromTables referencedTabs, boolean Whether or not to consider method
calls, field references and conditional nodes
when building bit map simplePredsOnly)Categorize this predicate. |
| pack-priv ValueNode | Returns: The modified expressionWhether or not we are under a top level AndNode. underTopAndNode)Finish putting an expression into conjunctive normal form. |
| public ValueNode | |
| pack-priv void | checkTopPredicatesForEqualsConditions(int
The tableNumber of the table from which
the columns of interest come from. tableNumber, boolean[] Array of booleans for noting which columns
are in = predicates without columns from the
subquery block. May be null. eqOuterCols, int[] Array of table numbers in this query block. tableNumbers, JBitSet[] Array of bits for noting which columns
are in = predicates for each table in the
query block. May be null. tableColMap, boolean True if tableNumber is the table containing result
columns resultColTable)Update the array of columns in = conditions with expressions without column references from the same table. |
| pack-priv boolean | Returns: True means this expression tree represents a constant value.Return whether or not this expression tree represents a constant value. |
| pack-priv void | copyFields(ValueNode
The ValueNode to copy from. oldVN)Copy all of the "appropriate fields" for a shallow copy. |
| pack-priv ValueNode | Returns: The modified expressionWhether or not we are under a NotNode. underNotNode)Eliminate NotNodes in the current query block. |
| pack-priv ValueNode | Returns: a constant representing the value to which this node is guaranteed to evaluate, orthis if the value is not knownIf this node is known to always evaluate to the same value, return a node that represents that known value as a constant. |
| pack-priv ValueNode | |
| pack-priv final void | generate(ActivationClassBuilder
The ActivationClassBuilder for the class being built acb, MethodBuilder The method the expression will go into mb)Overrides org. Do the code generation for this node. |
| pack-priv void | generateExpression(ExpressionClassBuilder
The ExpressionClassBuilder for the class being built acb, MethodBuilder The method the expression will go into mb)Generate code for this calculation. |
| pack-priv ValueNode | Returns: The modified expressionif true, transform this into IS NOT NULL;
otherwise, transform this into IS NULL notNull)Transform this into this IS NULL or IS NOT NULL. |
| pack-priv ValueNode | Returns: ValueNode The new tree.Generate a SQL->Java->SQL conversion tree above the current node and bind the new nodes individually. |
| pack-priv ValueNode | |
| pack-priv String | Returns: the default column name for an expression -- null.This is null so that the caller will substitute in the resultset generated name as needed. |
| pack-priv Object | Returns: An Object representing the bind time value of this expression tree. (null if not a bind time constant.)Return an Object representing the bind time value of this expression tree. |
| protected final DataValueFactory | |
| protected int | Returns: The variant type for the underlying expression.Return the variant type for the underlying expression. |
| pack-priv String | Returns: the default schema name for an expression -- nullThis returns the user-supplied schema name of the column. |
| pack-priv ResultColumn | Returns: The source of this ValueNode, null if this node is not sourced by a column.Get the source for this ValueNode. |
| pack-priv String | Returns: the default table name for an expression -- nullThis returns the user-supplied table name of the column. |
| pack-priv JBitSet | Returns: A bit map of table numbers referred to in this expressionGet a bit map of table references in this expression |
| pack-priv boolean | Returns: Whether or not this predicate has been transformed.Return whether or not this predicate has been transformed. |
| pack-priv final TypeCompiler | Returns: This ValueNode's TypeCompilerGet the TypeCompiler from this ValueNode, based on its TypeId using getTypeId(). |
| pack-priv TypeId | Returns: The TypeId from this ValueNode. This may be null if the node isn't bound yet.Get the TypeId from this ValueNode. |
| pack-priv DataTypeDescriptor | Returns: The DataTypeServices from this ValueNode. This may be null if the node isn't bound yet.Get the DataTypeServices from this ValueNode. |
| pack-priv boolean | |
| pack-priv boolean | Returns: Whether or not this node represents a false constant.Does this represent a false constant. |
| pack-priv boolean | Returns: Whether or not this node represents a true constant.Does this represent a true constant. |
| pack-priv boolean | Returns: boolean Whether or not this expression tree is cloneable.Return whether or not this expression tree is cloneable. |
| pack-priv boolean | Returns: Whether or not this expression tree represents a constant expression.Return whether or not this expression tree represents a constant expression. |
| pack-priv abstract boolean | Returns: true if the two nodes are equivalent,
false otherwise.the node to compare this ValueNode against. other)Tests if this node is equivalent to the specified ValueNode. |
| pack-priv boolean | isInListProbeNode()
Returns true if this value node is an operator created for optimized performance of an IN list. |
| pack-priv boolean | |
| pack-priv boolean | |
| pack-priv boolean | Returns: true if this and o represent the same
logical node type, i.e. kind.The other value node whose kind we want to compare with. other)Some node classes represent several logical node types (to reduce footprint), which we call kinds. |
| pack-priv boolean | optimizableEqualityNode(Optimizable
the table being optimized. Column reference must be from
this table. optTable, int the column number. One of the operands of this
predicate must be the column number specified by optTable/columnNumber columnNumber, boolean if set to true we also consider IS NULL predicates;
otherwise consider only = predicates. isNullOkay)Return true if the predicate represents an optimizable equality node. |
| pack-priv ValueNode | Returns: The modified expressionNumber of tables in the DML Statement numTables, FromList FromList from outer query block outerFromList, SubqueryList SubqueryList from outer query block outerSubqueryList, PredicateList PredicateList from outer query block outerPredicateList)Preprocess an expression tree. |
| pack-priv ValueNode | Returns: The modified expressionDo the 1st step in putting an expression into conjunctive normal form. |
| pack-priv ValueNode | Returns: ValueNode The remapped expression tree.Remap all ColumnReferences in this tree to be clones of the underlying expression. |
| pack-priv boolean | Returns: Whether this node's type will be determined from the contextReturns TRUE if the type of this node will be determined from the context in which it is getting used. |
| public double | |
| public void | setCollationInfo(DataTypeDescriptor
Type to take collation type and derivation from. collationInfoType)Set the collation type and derivation of this node based upon the collation information in the passed in type. |
| public void | setCollationInfo(int
Collation type collationType, int Collation derivation collationDerivation)Set the collation type and derivation of this node based upon the collation information passed in. This may result in a different object being returned from getTypeServices(). |
| protected final void | setCollationUsingCompilationSchema()
Set the collation based upon the current schema with derivation type implicit. |
| protected final void | setCollationUsingCompilationSchema(int
This can be
StringDataValue#COLLATION_DERIVATION_IMPLICIT
StringDataValue#COLLATION_DERIVATION_NONE
StringDataValue#COLLATION_DERIVATION_EXPLICIT collationDerivation)There are many subclasses of ValueNode where we want the DataTypeDescriptor of the node to have the same collation type as the compilation schema's collation type. |
| public void | |
| pack-priv void | setTransformed()
Mark this predicate has having been transformed (other predicates were generated from it). |
| pack-priv final void | |
| pack-priv final void | |
| pack-priv void | setType(DataTypeDescriptor
The DataTypeServices to set in this
ValueNode dataTypeServices)Set the DataTypeServices for this ValueNode. |
| private void | setValueCols(JBitSet[]
Array of bitmaps for noting which columns are in =
predicates with columns from each table tableColMap, boolean[] Array of booleans for noting which columns
are in = predicates without columns from the
subquery block. eqOuterCols, int The column to set colReference, int If -1 set all the bit for all the tables for that
column; otherwise set the bit for the specified table resultTable)Set eqOuterCols and the column in all the tables for constants, parmeters and correlation columns The column in the tableColMap is set only for the current table if the table is the result column table. |
| public String | Returns: This object as a StringOverrides org. Convert this object to a String. |
| public boolean | |
| private void | updateMaps(JBitSet[]
Array of bitmaps for noting which columns are in =
predicates with columns from each table tableColMap, boolean[] Array of booleans for noting which columns
are in = predicates without columns from the
subquery block. eqOuterCols, int[] tableNumbers, int table number for which we are setting up the Maps tableNumber, int -1 if this table is not the result table; otherwise
the index into tableNumbers for the result table resultTable, ValueNode one side of the = predicate arg1, ValueNode other side of the = predicate arg2)Set the correct bits in tableColMap and set the boolean value in eqOuterCols given two arguments to an = predicate tableColMap[t] - bit is set if the column is in an = predicate with a column in table t, or a bit is set if the column is in an = predicate with a constant,parameter or correlation variable (for all table t, if this tableColMap is not for the table with the result columns) eqOuterCols[c] - is true if the column is in an = predicate with a constant, parameter or correlation variable |
| pack-priv boolean | Returns: Boolean which reflects validity of the tree.Verify that changeToCNF() did its job correctly. |
| pack-priv boolean | Returns: Boolean which reflects validity of the tree.Verify that eliminateNots() did its job correctly. |
| pack-priv boolean | Returns: Boolean which reflects validity of the tree.Verify that putAndsOnTop() did its job correctly. |