Functions supported:
This node is used rather than some use of MethodCallNode for runtime performance. MethodCallNode does not provide a fast access to the current language connection or activation, since it is geared towards user defined routines.
| Modifier and Type | Field and Description |
|---|---|
| pack-priv static final int | |
| pack-priv static final int | |
| pack-priv static final int | |
| pack-priv static final int | |
| pack-priv static final int | |
| pack-priv static final int | |
| pack-priv static final int | |
| pack-priv static final int | |
| pack-priv final int | kind
This class is used to hold logically different objects for space efficiency. |
| private String | methodName
Java method name |
| private String | methodType
Return type of Java method. |
| pack-priv String | sqlName
Name of SQL function |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| pack-priv ValueNode | Returns: The new top of the expression tree.The FROM list for the statement. This parameter
is not used in this case. fromList, SubqueryList The subquery list being built as we find
SubqueryNodes. Not used in this case. subqueryList, List<AggregateNode> The aggregate list being built as we find
AggregateNodes. Not used in this case. aggregates)Overrides org. Binding this special function means setting the result DataTypeServices. |
| pack-priv void | generateExpression(ExpressionClassBuilder
The ExpressionClassBuilder for the class being built acb, MethodBuilder The method the code to place the code mb)Overrides org. Generate an expression that returns a DataValueDescriptor and calls a method off the language connection or the activation. |
| protected int | Returns: The variant type for the underlying expression.Overrides org. Return the variant type for the underlying expression. |
| pack-priv boolean | isEquivalent(ValueNode
the node to compare this ValueNode against. o)Implements abstract org. Tests if this node is equivalent to the specified ValueNode. |
| pack-priv boolean | isSameNodeKind(ValueNode
The other value node whose kind we want to compare with. o)Overrides org. Some node classes represent several logical node types (to reduce footprint), which we call kinds. |
| public String | toString()
Overrides org. Convert this object to a String. |
| K_CURRENT_ISOLATION | back to summary |
|---|---|
| pack-priv static final int K_CURRENT_ISOLATION | |
| K_CURRENT_ROLE | back to summary |
|---|---|
| pack-priv static final int K_CURRENT_ROLE | |
| K_CURRENT_SCHEMA | back to summary |
|---|---|
| pack-priv static final int K_CURRENT_SCHEMA | |
| K_CURRENT_USER | back to summary |
|---|---|
| pack-priv static final int K_CURRENT_USER | |
| K_IDENTITY_VAL | back to summary |
|---|---|
| pack-priv static final int K_IDENTITY_VAL | |
| K_SESSION_USER | back to summary |
|---|---|
| pack-priv static final int K_SESSION_USER | |
| K_SYSTEM_USER | back to summary |
|---|---|
| pack-priv static final int K_SYSTEM_USER | |
| K_USER | back to summary |
|---|---|
| pack-priv static final int K_USER | |
| kind | back to summary |
|---|---|
| pack-priv final int kind This class is used to hold logically different objects for
space efficiency. | |
| methodName | back to summary |
|---|---|
| private String methodName Java method name | |
| methodType | back to summary |
|---|---|
| private String methodType Return type of Java method. | |
| sqlName | back to summary |
|---|---|
| pack-priv String sqlName Name of SQL function | |
| SpecialFunctionNode | back to summary |
|---|---|
| pack-priv SpecialFunctionNode(int kind, ContextManager cm) | |
| bindExpression | back to summary |
|---|---|
| pack-priv ValueNode bindExpression(FromList fromList, SubqueryList subqueryList, List<AggregateNode> aggregates) throws StandardException Overrides org. Binding this special function means setting the result DataTypeServices. In this case, the result type is based on the operation requested.
| |
| generateExpression | back to summary |
|---|---|
| pack-priv void generateExpression(ExpressionClassBuilder acb, MethodBuilder mb) throws StandardException Overrides org. Generate an expression that returns a DataValueDescriptor and calls a method off the language connection or the activation.
| |
| getOrderableVariantType | back to summary |
|---|---|
| protected int getOrderableVariantType() Overrides org. Return the variant type for the underlying expression. All supported special functions are QUERY_INVARIANT
| |
| isEquivalent | back to summary |
|---|---|
| pack-priv boolean isEquivalent(ValueNode o) Implements abstract org. Doc from org. Tests if this node is equivalent to the specified ValueNode. Two ValueNodes are considered equivalent if they will evaluate to the same value during query execution. This method provides basic expression matching facility for the derived class of ValueNode and it is used by the language layer to compare the node structural form of the two expressions for equivalence at bind phase. Note that it is not comparing the actual row values at runtime to produce a result; hence, when comparing SQL NULLs, they are considered to be equivalent and not unknown. One usage case of this method in this context is to compare the select column expression against the group by expression to check if they are equivalent. e.g.: SELECT c1+c2 FROM t1 GROUP BY c1+c2 In general, node equivalence is determined by the derived class of ValueNode. But they generally abide to the rules below:
| |
| isSameNodeKind | back to summary |
|---|---|
| pack-priv boolean isSameNodeKind(ValueNode o) Overrides org. Doc from org. Some node classes represent several logical node types (to reduce
footprint), which we call kinds.
This means that implementations of | |
| toString | back to summary |
|---|---|
| public String toString() Overrides org. Doc from org. Convert this object to a String. See comments in QueryTreeNode.java for how this should be done for tree printing. | |