Class RenameNode
- 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.RenameNode
-
- All Implemented Interfaces:
Visitable
class RenameNode extends DDLStatementNode
A RenameNode is the root of a QueryTree that represents a RENAME TABLE/COLUMN/INDEX statement.
-
-
Field Summary
Fields Modifier and Type Field Description private long
conglomerateNumber
protected java.lang.String
newObjectName
protected TableName
newTableName
protected java.lang.String
oldObjectName
protected int
renamingWhat
protected TableDescriptor
td
protected boolean
usedAlterTable
-
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 RenameNode(java.lang.Object tableName, java.lang.String oldObjectName, java.lang.String newObjectName, boolean usedAlterTable, int renamingWhat, ContextManager cm)
Constructor for a RenameNode
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
acceptChildren(Visitor v)
Accept a visitor on all child nodes.void
bindStatement()
Bind this node.private StandardException
descriptorExistsException(TupleDescriptor tuple, TupleDescriptor parent)
ConstantAction
makeConstantAction()
Create the Constant information that will drive the guts of Executionboolean
referencesSessionSchema()
Return true if the node references SESSION schema tables (temporary or permanent)private void
renameColumnBind(DataDictionary dd)
private void
renameTableBind(DataDictionary dd)
(package private) java.lang.String
statementToString()
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, printSubNodes, resolveTableToSynonym, setBeginOffset, setEndOffset, setRefActionInfo, stackPrint, taggedWith, treePrint, treePrint, verifyClassExist
-
-
-
-
Field Detail
-
newTableName
protected TableName newTableName
-
oldObjectName
protected java.lang.String oldObjectName
-
newObjectName
protected java.lang.String newObjectName
-
td
protected TableDescriptor td
-
conglomerateNumber
private long conglomerateNumber
-
usedAlterTable
protected boolean usedAlterTable
-
renamingWhat
protected int renamingWhat
-
-
Constructor Detail
-
RenameNode
RenameNode(java.lang.Object tableName, java.lang.String oldObjectName, java.lang.String newObjectName, boolean usedAlterTable, int renamingWhat, ContextManager cm) throws StandardException
Constructor for a RenameNode- Parameters:
tableName
- The name of the table. This is the table which is being renamed in case of rename table. In case of rename column, the column being renamed belongs to this table. In case of rename index, this is null because index name is unique within a schema and doesn't have to be associated with a table name. Coming from ALTER TABLE path, tableName will be TableName object. Mostly a TableName object, but coming from RENAME COLUMN path, tableName will be a String.oldObjectName
- This is either the name of column/index in case of rename column/index. For rename table, this is null.newObjectName
- This is new name for table/column/indexusedAlterTable
- True-Used Alter Table, False-Used Rename. For rename index, this will always be false because there is no alter table command to rename indexrenamingWhat
- Rename a 1 - table, 2 - column, 3 - indexcm
- context manager- Throws:
StandardException
- Thrown on error
-
-
Method Detail
-
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
-
statementToString
java.lang.String statementToString()
- Specified by:
statementToString
in classStatementNode
-
bindStatement
public void bindStatement() throws StandardException
Bind this node. This means doing any static error checking that can be done before actually renaming the table/column/index. For a table rename: looking up the from table, verifying it exists verifying it's not a system table, verifying it's not view and looking up to table, verifying it doesn't exist. For a column rename: looking up the table, verifying it exists, verifying it's not a system table, verifying it's not view, verifying the from column exists, verifying the to column doesn't exist. For a index rename: looking up the table, verifying it exists, verifying it's not a system table, verifying it's not view, verifying the from index exists, verifying the to index doesn't exist.- 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
-
renameTableBind
private void renameTableBind(DataDictionary dd) throws StandardException
- Throws:
StandardException
-
renameColumnBind
private void renameColumnBind(DataDictionary dd) throws StandardException
- Throws:
StandardException
-
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
-
descriptorExistsException
private StandardException descriptorExistsException(TupleDescriptor tuple, TupleDescriptor parent)
-
acceptChildren
void acceptChildren(Visitor v) throws StandardException
Description copied from class:QueryTreeNode
Accept a visitor on all child nodes. All sub-classes that add fields that should be visited, should override this method and callaccept(v)
on all visitable fields, as well assuper.acceptChildren(v)
to make sure all visitable fields defined by the super-class are accepted too.- Overrides:
acceptChildren
in classDDLStatementNode
- Parameters:
v
- the visitor- Throws:
StandardException
- on errors raised by the visitor
-
-