org.apache.derby.impl.sql.compile
Class BaseColumnNode

java.lang.Object
  extended byorg.apache.derby.impl.sql.compile.QueryTreeNode
      extended byorg.apache.derby.impl.sql.compile.ValueNode
          extended byorg.apache.derby.impl.sql.compile.BaseColumnNode
All Implemented Interfaces:
Visitable

public class BaseColumnNode
extends ValueNode

A BaseColumnNode represents a column in a base table. The parser generates a BaseColumnNode for each column reference. A column refercence could be a column in a base table, a column in a view (which could expand into a complex expression), or a column in a subquery in the FROM clause. By the time we get to code generation, all BaseColumnNodes should stand only for columns in base tables.

Author:
Jeff Lichtman

Field Summary
 java.lang.String columnName
           
 TableName tableName
           
 
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
BaseColumnNode()
           
 
Method Summary
 void generateExpression(ExpressionClassBuilder acb, MethodBuilder mb)
          Do the code generation for this node.
 java.lang.String getColumnName()
          Get the name of this column
protected  int getOrderableVariantType()
          Return the variant type for the underlying expression.
 java.lang.String getSchemaName()
          Get the user-supplied schema name for this column's table.
 java.lang.String getTableName()
          Get the user-supplied table name of this column.
 void init(java.lang.Object columnName, java.lang.Object tableName, java.lang.Object dts)
          Initializer for when you only have the column name.
 java.lang.String toString()
          Convert this object to a String.
 
Methods inherited from class org.apache.derby.impl.sql.compile.ValueNode
bindExpression, bindExpression, categorize, changeToCNF, checkIsBoolean, checkReliability, checkReliability, checkTopPredicatesForEqualsConditions, constantExpression, copyFields, eliminateNots, genEqualsFalseTree, generate, generateFilter, genIsNullTree, genSQLJavaSQLTree, getClause, getClone, getConstantValueAsObject, getDataValueFactory, getSourceResultColumn, getTablesReferenced, getTransformed, getTypeCompiler, getTypeId, getTypeServices, init, isBinaryEqualsOperatorNode, isBooleanFalse, isBooleanTrue, isCloneable, isConstantExpression, isParameterNode, isRelationalOperator, optimizableEqualityNode, preprocess, putAndsOnTop, remapColumnReferencesToExpressions, selectivity, setClause, setDescriptor, setTransformed, setType, updatableByCursor, verifyChangeToCNF, verifyEliminateNots, verifyPutAndsOnTop
 
Methods inherited from class org.apache.derby.impl.sql.compile.QueryTreeNode
accept, bind, convertDefaultNode, debugFlush, debugPrint, executeSchemaName, executeStatementName, formatNodeString, foundString, generate, generateAuthorizeCheck, getBeginOffset, getClassFactory, getCompilerContext, getContextManager, getCursorInfo, getDataDictionary, getDependencyManager, getEndOffset, getExecutionFactory, getGenericConstantActionFactory, getIntProperty, getLanguageConnectionContext, getNodeFactory, getNodeType, getNullNode, getParameterTypes, getRowEstimate, getSchemaDescriptor, getSchemaDescriptor, getSPSName, getStatementType, getTableDescriptor, getTypeCompiler, init, init, init, init, init, init, init, init, init, init, init, init, isAtomic, isInstanceOf, isSessionSchema, isSessionSchema, makeConstantAction, makeResultDescription, makeTableName, needsSavepoint, nodeHeader, optimize, parseQueryText, printLabel, printSubNodes, referencesSessionSchema, resolveTableToSynonym, setBeginOffset, setContextManager, setEndOffset, setNodeType, setRefActionInfo, treePrint, treePrint, verifyClassExist
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

columnName

public java.lang.String columnName

tableName

public TableName tableName
Constructor Detail

BaseColumnNode

public BaseColumnNode()
Method Detail

init

public void init(java.lang.Object columnName,
                 java.lang.Object tableName,
                 java.lang.Object dts)
Initializer for when you only have the column name.

Overrides:
init in class QueryTreeNode
Parameters:
columnName - The name of the column being referenced
tableName - The qualification for the column
dts - DataTypeServices for the column

toString

public java.lang.String toString()
Convert this object to a String. See comments in QueryTreeNode.java for how this should be done for tree printing.

Overrides:
toString in class ValueNode
Returns:
This object as a String

getColumnName

public java.lang.String getColumnName()
Get the name of this column

Overrides:
getColumnName in class ValueNode
Returns:
The name of this column

getTableName

public java.lang.String getTableName()
Get the user-supplied table name of this column. This will be null if the user did not supply a name (for example, select a from t). The method will return B for this example, select b.a from t as b The method will return T for this example, select t.a from t

Overrides:
getTableName in class ValueNode
Returns:
The user-supplied name of this column. Null if no user- supplied name.

getSchemaName

public java.lang.String getSchemaName()
                               throws StandardException
Get the user-supplied schema name for this column's table. This will be null if the user did not supply a name (for example, select t.a from t). Another example for null return value (for example, select b.a from t as b). But for following query select app.t.a from t, this will return APP

Overrides:
getSchemaName in class ValueNode
Returns:
The schema name for this column's table
Throws:
StandardException

generateExpression

public void generateExpression(ExpressionClassBuilder acb,
                               MethodBuilder mb)
                        throws StandardException
Do the code generation for this node. Should never be called.

Overrides:
generateExpression in class ValueNode
Parameters:
acb - The ExpressionClassBuilder for the class being built
mb - The method the code to place the code
Throws:
StandardException - Thrown on error

getOrderableVariantType

protected int getOrderableVariantType()
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)

Overrides:
getOrderableVariantType in class ValueNode
Returns:
The variant type for the underlying expression.

Built on Mon 2007-06-04 09:58:47+0400, from revision ???

Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.