Class CreateTableNode
- java.lang.Object
-
- org.apache.derby.impl.sql.compile.QueryTreeNode
-
- org.apache.derby.impl.sql.compile.StatementNode
-
- org.apache.derby.impl.sql.compile.DDLStatementNode
-
- org.apache.derby.impl.sql.compile.CreateTableNode
-
- All Implemented Interfaces:
Visitable
class CreateTableNode extends DDLStatementNode
A CreateTableNode is the root of a QueryTree that represents a CREATE TABLE or DECLARE GLOBAL TEMPORARY TABLE statement.
-
-
Field Summary
Fields Modifier and Type Field Description private char
lockGranularity
private boolean
onCommitDeleteRows
private boolean
onRollbackDeleteRows
private java.util.Properties
properties
private ResultSetNode
queryExpression
private ResultColumnList
resultColumns
private TableElementList
tableElementList
protected int
tableType
-
Fields inherited from class org.apache.derby.impl.sql.compile.DDLStatementNode
ADD_TYPE, DROP_STATISTICS, DROP_TYPE, implicitCreateSchema, LOCKING_TYPE, MODIFY_TYPE, UNKNOWN_TYPE, UPDATE_STATISTICS
-
Fields inherited from class org.apache.derby.impl.sql.compile.StatementNode
EMPTY_TD_LIST, NEED_CURSOR_ACTIVATION, NEED_DDL_ACTIVATION, NEED_NOTHING_ACTIVATION, NEED_PARAM_ACTIVATION, NEED_ROW_ACTIVATION
-
Fields inherited from class org.apache.derby.impl.sql.compile.QueryTreeNode
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_CYCLE, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX
-
-
Constructor Summary
Constructors Constructor Description CreateTableNode(TableName tableName, ResultColumnList resultColumns, ResultSetNode queryExpression, ContextManager cm)
Constructor for a CreateTableNode for a base table create from a queryCreateTableNode(TableName tableName, TableElementList tableElementList, java.util.Properties properties, boolean onCommitDeleteRows, boolean onRollbackDeleteRows, ContextManager cm)
Constructor for a CreateTableNode for a global temporary tableCreateTableNode(TableName tableName, TableElementList tableElementList, java.util.Properties properties, char lockGranularity, ContextManager cm)
Constructor for a CreateTableNode for a base table
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
acceptChildren(Visitor v)
Accept the visitor for all visitable children of this node.void
bindStatement()
Bind this CreateTableNode.ConstantAction
makeConstantAction()
Create the Constant information that will drive the guts of Execution.(package private) void
printSubNodes(int depth)
Prints the sub-nodes of this object.boolean
referencesSessionSchema()
Return true if the node references SESSION schema tables (temporary or permanent)(package private) java.lang.String
statementToString()
private static TableName
tempTableSchemaNameCheck(TableName tableName)
If no schema name specified for global temporary table, SESSION is the implicit schema.java.lang.String
toString()
Convert this object to a String.-
Methods inherited from class org.apache.derby.impl.sql.compile.DDLStatementNode
activationKind, generate, getFullName, getObjectName, getRelativeName, getSchemaDescriptor, getSchemaDescriptor, getTableDescriptor, getTableDescriptor, getTableDescriptor, getTableDescriptor, initAndCheck, isAtomic, makeFromList
-
Methods inherited from class org.apache.derby.impl.sql.compile.StatementNode
executeSchemaName, executeStatementName, generate, getCursorInfo, getSPSName, lockTableForCompilation, makeResultDescription, needsSavepoint, optimizeStatement, updateIndexStatisticsFor
-
Methods inherited from class org.apache.derby.impl.sql.compile.QueryTreeNode
accept, addTag, addUDTUsagePriv, addUDTUsagePriv, bindOffsetFetch, bindRowMultiSet, bindUserCatalogType, bindUserType, checkReliability, checkReliability, convertDefaultNode, copyTagsFrom, createTypeDependency, debugFlush, debugPrint, disablePrivilegeCollection, formatNodeString, generateAuthorizeCheck, getBeginOffset, getClassFactory, getCompilerContext, getContext, getContextManager, getDataDictionary, getDependencyManager, getEndOffset, getExecutionFactory, getGenericConstantActionFactory, getIntProperty, getLanguageConnectionContext, getLongProperty, getNullNode, getOffsetOrderedNodes, getOptimizerFactory, getOptimizerTracer, getParameterTypes, getSchemaDescriptor, getSchemaDescriptor, getStatementType, getTableDescriptor, getTypeCompiler, getUDTDesc, isPrivilegeCollectionRequired, isSessionSchema, isSessionSchema, makeTableName, makeTableName, nodeHeader, optimizerTracingIsOn, orReliability, parseSearchCondition, parseStatement, printLabel, resolveTableToSynonym, setBeginOffset, setEndOffset, setRefActionInfo, stackPrint, taggedWith, treePrint, treePrint, verifyClassExist
-
-
-
-
Field Detail
-
lockGranularity
private char lockGranularity
-
onCommitDeleteRows
private boolean onCommitDeleteRows
-
onRollbackDeleteRows
private boolean onRollbackDeleteRows
-
properties
private java.util.Properties properties
-
tableElementList
private TableElementList tableElementList
-
tableType
protected int tableType
-
resultColumns
private ResultColumnList resultColumns
-
queryExpression
private ResultSetNode queryExpression
-
-
Constructor Detail
-
CreateTableNode
CreateTableNode(TableName tableName, TableElementList tableElementList, java.util.Properties properties, char lockGranularity, ContextManager cm) throws StandardException
Constructor for a CreateTableNode for a base table- Parameters:
tableName
- The name of the new object being created (ie base table)tableElementList
- The elements of the table: columns, constraints, etc.properties
- The optional list of properties associated with the table.lockGranularity
- The lock granularity.cm
- The context manager- Throws:
StandardException
- Thrown on error
-
CreateTableNode
CreateTableNode(TableName tableName, TableElementList tableElementList, java.util.Properties properties, boolean onCommitDeleteRows, boolean onRollbackDeleteRows, ContextManager cm) throws StandardException
Constructor for a CreateTableNode for a global temporary table- Parameters:
tableName
- The name of the new object being declared (ie temporary table)tableElementList
- The elements of the table: columns, constraints, etc.properties
- The optional list of properties associated with the table.onCommitDeleteRows
- If true, on commit delete rows else on commit preserve rows of temporary table.onRollbackDeleteRows
- If true, on rollback, delete rows from temp tables which were logically modified. true is the only supported value- Throws:
StandardException
- Thrown on error
-
CreateTableNode
CreateTableNode(TableName tableName, ResultColumnList resultColumns, ResultSetNode queryExpression, ContextManager cm) throws StandardException
Constructor for a CreateTableNode for a base table create from a query- Parameters:
tableName
- The name of the new object being created (ie base table).resultColumns
- The optional column list.queryExpression
- The query expression for the table.cm
- The context manager- Throws:
StandardException
-
-
Method Detail
-
tempTableSchemaNameCheck
private static TableName tempTableSchemaNameCheck(TableName tableName) throws StandardException
If no schema name specified for global temporary table, SESSION is the implicit schema. Otherwise, make sure the specified schema name for global temporary table is SESSION.- Parameters:
tableName
- The name of the new object being declared (ie temporary table)- Throws:
StandardException
-
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 classDDLStatementNode
- Returns:
- This object as a String
-
printSubNodes
void printSubNodes(int depth)
Prints the sub-nodes of this object. See QueryTreeNode.java for how tree printing is supposed to work.- Overrides:
printSubNodes
in classQueryTreeNode
- Parameters:
depth
- The depth to indent the sub-nodes
-
statementToString
java.lang.String statementToString()
- Specified by:
statementToString
in classStatementNode
-
bindStatement
public void bindStatement() throws StandardException
Bind this CreateTableNode. This means doing any static error checking that can be done before actually creating the base table or declaring the global temporary table. For eg, verifying that the TableElementList does not contain any duplicate column names.- Overrides:
bindStatement
in classStatementNode
- Throws:
StandardException
- Thrown on error
-
referencesSessionSchema
public boolean referencesSessionSchema() throws StandardException
Return true if the node references SESSION schema tables (temporary or permanent)- Overrides:
referencesSessionSchema
in classQueryTreeNode
- Returns:
- true if references SESSION schema tables, else false
- Throws:
StandardException
- Thrown on error
-
makeConstantAction
public ConstantAction makeConstantAction() throws StandardException
Create the Constant information that will drive the guts of Execution.- Overrides:
makeConstantAction
in classQueryTreeNode
- Throws:
StandardException
- Thrown on failure
-
acceptChildren
void acceptChildren(Visitor v) throws StandardException
Accept the visitor for all visitable children of this node.- Overrides:
acceptChildren
in classDDLStatementNode
- Parameters:
v
- the visitor- Throws:
StandardException
- on error
-
-