| Modifier and Type | Field and Description |
|---|---|
| private int | |
| protected boolean | |
| protected JSQLType | |
| private boolean | |
| private LocalField | |
| private boolean | |
| private boolean |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| pack-priv abstract JavaValueNode | Returns: the new node, usually this
|
| pack-priv final void | castToPrimitive(boolean
true if we want the code generator to add a cast
false otherwise booleanValue)Toggles whether the code generator should add a cast to extract a primitive value from an object. |
| pack-priv abstract boolean | |
| pack-priv void | |
| 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 abstract void | generateExpression(ExpressionClassBuilder
The ExpressionClassBuilder for the class being built acb, MethodBuilder the method the expression will go into mb)General logic shared by Core compilation and by the Replication Filter compiler. |
| pack-priv boolean | Returns: True if has compiled receiver.The ExpressionClassBuilder for the class being built acb, MethodBuilder the method the expression will go into mb)Generate the expression that evaluates to the receiver. |
| pack-priv final boolean | Returns: The compiled receiver, if any.The ActivationClassBuilder for the class being built acb, MethodBuilder the method the expression will go into mb, JavaValueNode The query tree form of the receiver expression receiver)Generate the expression that evaluates to the receiver. |
| pack-priv int | |
| pack-priv Object | |
| pack-priv DataTypeDescriptor | |
| pack-priv String | |
| pack-priv JSQLType | |
| pack-priv int | Returns: The variant type for the underlying expression.Return the variant type for the underlying expression. |
| pack-priv String | |
| pack-priv final void | getReceiverExpression(ExpressionClassBuilder
The ExpressionClassBuilder for the class we're generating acb, MethodBuilder the method the expression will go into mb, JavaValueNode The query tree form of the receiver expression receiver)Get an expression that has the value of the receiver. |
| pack-priv final boolean | |
| pack-priv static TypeId | Returns: the corresponding compilation type idthe universal type to map jsqlType)Map a JSQLType to a compilation type id. |
| pack-priv final void | |
| pack-priv void | |
| pack-priv final boolean | Returns: true if we want the code generator to add a cast false otherwiseReports whether the code generator should add a cast to extract a primitive value from an object. |
| pack-priv abstract void | preprocess(int numTables, FromList outerFromList, SubqueryList outerSubqueryList, PredicateList outerPredicateList)
|
| pack-priv abstract JavaValueNode | |
| pack-priv boolean | |
| pack-priv void | |
| pack-priv void | setCollationType(int
one of type)StringDataValue.COLLATION_TYPE_UCS_BASIC or
StringDataValue.COLLATION_TYPE_TERRITORY_BASED Set the collation type. |
| pack-priv final void | |
| pack-priv boolean |
| collationType | back to summary |
|---|---|
| private int collationType | |
| forCallStatement | back to summary |
|---|---|
| protected boolean forCallStatement | |
| jsqlType | back to summary |
|---|---|
| protected JSQLType jsqlType | |
| mustCastToPrimitive | back to summary |
|---|---|
| private boolean mustCastToPrimitive | |
| receiverField | back to summary |
|---|---|
| private LocalField receiverField | |
| returnValueDiscarded | back to summary |
|---|---|
| private boolean returnValueDiscarded | |
| valueReturnedToSQLDomain | back to summary |
|---|---|
| private boolean valueReturnedToSQLDomain | |
| JavaValueNode | back to summary |
|---|---|
| pack-priv JavaValueNode(ContextManager cm) | |
| bindExpression | back to summary |
|---|---|
pack-priv abstract JavaValueNode bindExpression(FromList fromList, SubqueryList subqueryList, List<AggregateNode> aggregates) throws StandardException
| |
| castToPrimitive | back to summary |
|---|---|
| pack-priv final void castToPrimitive(boolean booleanValue) Toggles whether the code generator should add a cast to extract a primitive value from an object.
| |
| categorize | back to summary |
|---|---|
pack-priv abstract boolean categorize(JBitSet referencedTabs, boolean simplePredsOnly) throws StandardException
| |
| checkReliability | back to summary |
|---|---|
| pack-priv void checkReliability(ValueNode sqlNode) throws StandardException Check the reliability type of this java value.
| |
| generate | back to summary |
|---|---|
| pack-priv final void generate(ActivationClassBuilder acb, MethodBuilder mb) throws StandardException Overrides org. Do the code generation for this node. Call the more general routine that generates expressions.
| |
| generateExpression | back to summary |
|---|---|
| pack-priv abstract void generateExpression(ExpressionClassBuilder acb, MethodBuilder mb) throws StandardException General logic shared by Core compilation and by the Replication Filter compiler. Every child of ValueNode must implement one of these methods.
| |
| generateReceiver | back to summary |
|---|---|
| pack-priv boolean generateReceiver(ExpressionClassBuilder acb, MethodBuilder mb) throws StandardException Generate the expression that evaluates to the receiver. This is for the case where a java expression is being returned to the SQL domain, and we need to check whether the receiver is null (if so, the SQL value should be set to null, and this Java expression not evaluated). Instance method calls and field references have receivers, while class method calls and calls to constructors do not. If this Java expression does not have a receiver, this method returns null. The implementation of this method should only generate the receiver once and cache it in a field. This is because there will be two references to the receiver, and we want to evaluate it only once.
| |
| generateReceiver | back to summary |
|---|---|
| pack-priv final boolean generateReceiver(ExpressionClassBuilder acb, MethodBuilder mb, JavaValueNode receiver) throws StandardException Generate the expression that evaluates to the receiver. This is for the case where a java expression is being returned to the SQL domain, and we need to check whether the receiver is null (if so, the SQL value should be set to null, and this Java expression not evaluated). Instance method calls and field references have receivers, while class method calls and calls to constructors do not. If this Java expression does not have a receiver, this method returns null. This also covers the case where a java expression is being returned to the Java domain. In this case, we need to check whether the receiver is null only if the value returned by the Java expression is an object (not a primitive type). We don't want to generate the expression here if we are returning a primitive type to the Java domain, because there's no point in checking whether the receiver is null in this case (we can't make the expression return a null value). Only generate the receiver once and cache it in a field. This is because there will be two references to the receiver, and we want to evaluate it only once.
| |
| getCollationType | back to summary |
|---|---|
pack-priv int getCollationType()
| |
| getConstantValueAsObject | back to summary |
|---|---|
pack-priv Object getConstantValueAsObject() throws StandardException
| |
| getDataType | back to summary |
|---|---|
| pack-priv DataTypeDescriptor getDataType() throws StandardException Get the resolved data type of this node. May be overridden by descendants. | |
| getJavaTypeName | back to summary |
|---|---|
| pack-priv String getJavaTypeName() throws StandardException | |
| getJSQLType | back to summary |
|---|---|
| pack-priv JSQLType getJSQLType() throws StandardException Get the JSQLType that corresponds to this node. Could be a SQLTYPE, a Java primitive, or a Java class.
| |
| getOrderableVariantType | back to summary |
|---|---|
| pack-priv int getOrderableVariantType() throws StandardException Return the variant type for the underlying expression. The variant type can be: VARIANT - variant within a scan (method calls and non-static field access) SCAN_INVARIANT - invariant within a scan (column references from outer tables) QUERY_INVARIANT - invariant within the life of a query (constant expressions)
| |
| getPrimitiveTypeName | back to summary |
|---|---|
| pack-priv String getPrimitiveTypeName() throws StandardException | |
| getReceiverExpression | back to summary |
|---|---|
| pack-priv final void getReceiverExpression(ExpressionClassBuilder acb, MethodBuilder mb, JavaValueNode receiver) throws StandardException Get an expression that has the value of the receiver. If a field holding the receiver value was already generated, use that. If not, generate the receiver value.
| |
| isPrimitiveType | back to summary |
|---|---|
| pack-priv final boolean isPrimitiveType() throws StandardException | |
| mapToTypeID | back to summary |
|---|---|
| pack-priv static TypeId mapToTypeID(JSQLType jsqlType) throws StandardException Map a JSQLType to a compilation type id. | |
| markForCallStatement | back to summary |
|---|---|
| pack-priv final void markForCallStatement() Mark this node as being for a CALL Statement. (void methods are only okay for CALL Statements) | |
| markReturnValueDiscarded | back to summary |
|---|---|
| pack-priv void markReturnValueDiscarded() Tell this node that nothing is done with the returned value | |
| mustCastToPrimitive | back to summary |
|---|---|
| pack-priv final boolean mustCastToPrimitive() Reports whether the code generator should add a cast to extract a primitive value from an object.
| |
| preprocess | back to summary |
|---|---|
pack-priv abstract void preprocess(int numTables, FromList outerFromList, SubqueryList outerSubqueryList, PredicateList outerPredicateList) throws StandardException
| |
| remapColumnReferencesToExpressions | back to summary |
|---|---|
pack-priv abstract JavaValueNode remapColumnReferencesToExpressions() throws StandardException
| |
| returnValueDiscarded | back to summary |
|---|---|
| pack-priv boolean returnValueDiscarded() Tell whether the return value from this node is discarded | |
| returnValueToSQLDomain | back to summary |
|---|---|
| pack-priv void returnValueToSQLDomain() Inform this node that it returns its value to the SQL domain | |
| setCollationType | back to summary |
|---|---|
| pack-priv void setCollationType(int type) Set the collation type. This will be used to determine the collation type for the SQLToJavaValueNode.
| |
| setJavaTypeName | back to summary |
|---|---|
| pack-priv final void setJavaTypeName(String javaTypeName) | |
| valueReturnedToSQLDomain | back to summary |
|---|---|
| pack-priv boolean valueReturnedToSQLDomain() Tell whether this node returns its value to the SQL domain | |