|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.derby.impl.sql.compile.QueryTreeNode
org.apache.derby.impl.sql.compile.ValueNode
org.apache.derby.impl.sql.compile.ConstantNode
ConstantNode holds literal constants as well as nulls.
A NULL from the parser may not yet know its type; that must be set during binding, as it is for parameters.
the DataValueDescriptor methods want to throw exceptions when they are of the wrong type, but to do that they must check typeId when the value is null, rather than the instanceof check they do for returning a valid value.
For code generation, we generate a static field. Then we set the
field be the proper constant expression (something like
getDatavalueFactory().getCharDataValue("hello", ...)) )
in the constructor of the generated method. Ideally
we would have just
| Field Summary | |
protected DataValueDescriptor |
value
|
| Fields inherited from class org.apache.derby.impl.sql.compile.ValueNode |
clause, dataTypeServices, IN_HAVING_CLAUSE, IN_SELECT_LIST, IN_UNKNOWN_CLAUSE, IN_WHERE_CLAUSE, transformed |
| Fields inherited from class org.apache.derby.impl.sql.compile.QueryTreeNode |
AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX, beginOffset, endOffset |
| Constructor Summary | |
(package private) |
ConstantNode()
Constructor for untyped nodes, which contain little information |
| Method Summary | |
ValueNode |
bindExpression(FromList fromList,
SubqueryList subqueryList,
java.util.Vector aggregateVector)
Bind this expression. |
boolean |
constantExpression(PredicateList whereClause)
Return whether or not this expression tree represents a constant value. |
(package private) abstract void |
generateConstant(ExpressionClassBuilder acb,
MethodBuilder mb)
This generates the proper constant. |
void |
generateExpression(ExpressionClassBuilder acb,
MethodBuilder mb)
For a ConstantNode, we generate the equivalent literal value. |
ValueNode |
getClone()
Return a clone of this node. |
protected int |
getOrderableVariantType()
Return the variant type for the underlying expression. |
DataValueDescriptor |
getValue()
Get the value in this ConstantNode |
void |
init(java.lang.Object typeId,
java.lang.Object nullable,
java.lang.Object maximumWidth)
Initializer for non-numeric types |
boolean |
isCloneable()
Return whether or not this expression tree is cloneable. |
boolean |
isConstantExpression()
Return whether or not this expression tree represents a constant expression. |
boolean |
isNull()
Return whether or not this node represents a typed null constant. |
(package private) void |
setValue(DataValueDescriptor value)
Set the value in this ConstantNode. |
java.lang.String |
toString()
Convert this object to a String. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
protected DataValueDescriptor value
| Constructor Detail |
ConstantNode()
| Method Detail |
public void init(java.lang.Object typeId,
java.lang.Object nullable,
java.lang.Object maximumWidth)
throws StandardException
init in class QueryTreeNodetypeId - The Type ID of the datatypenullable - True means the constant is nullablemaximumWidth - The maximum number of bytes in the data value
StandardExceptionvoid setValue(DataValueDescriptor value)
public DataValueDescriptor getValue()
public java.lang.String toString()
toString in class ValueNodepublic boolean isCloneable()
isCloneable in class ValueNodepublic ValueNode getClone()
getClone in class ValueNode
public ValueNode bindExpression(FromList fromList,
SubqueryList subqueryList,
java.util.Vector aggregateVector)
bindExpression in class ValueNodefromList - The FROM list for the query this
expression is in, for binding columns.subqueryList - The subquery list being built as we find SubqueryNodesaggregateVector - The aggregate vector being built as we find AggregateNodes
public boolean isConstantExpression()
isConstantExpression in class ValueNodepublic boolean constantExpression(PredicateList whereClause)
ValueNode
constantExpression in class ValueNodeValueNode.constantExpression(org.apache.derby.impl.sql.compile.PredicateList)
public void generateExpression(ExpressionClassBuilder acb,
MethodBuilder mb)
throws StandardException
generateExpression in class ValueNodeacb - The ExpressionClassBuilder for the class being builtmb - The method the code to place the code
StandardException - Thrown on error
abstract void generateConstant(ExpressionClassBuilder acb,
MethodBuilder mb)
throws StandardException
acb - The ExpressionClassBuilder for the class being builtmb - The method the code to place the code
StandardException - Thrown on errorpublic boolean isNull()
protected int getOrderableVariantType()
getOrderableVariantType in class ValueNode
|
Built on Tue 2006-10-10 19:23:47+0200, from revision exported | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||