|
||||||||||
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 QueryTreeNode
typeId
- The Type ID of the datatypenullable
- True means the constant is nullablemaximumWidth
- The maximum number of bytes in the data value
StandardException
void setValue(DataValueDescriptor value)
public DataValueDescriptor getValue()
public java.lang.String toString()
toString
in class ValueNode
public boolean isCloneable()
isCloneable
in class ValueNode
public ValueNode getClone()
getClone
in class ValueNode
public ValueNode bindExpression(FromList fromList, SubqueryList subqueryList, java.util.Vector aggregateVector)
bindExpression
in class ValueNode
fromList
- 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 ValueNode
public boolean constantExpression(PredicateList whereClause)
ValueNode
constantExpression
in class ValueNode
ValueNode.constantExpression(org.apache.derby.impl.sql.compile.PredicateList)
public void generateExpression(ExpressionClassBuilder acb, MethodBuilder mb) throws StandardException
generateExpression
in class ValueNode
acb
- The ExpressionClassBuilder for the class being builtmb
- The method the code to place the code
StandardException
- Thrown on errorabstract 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 |