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 longconglomerateNumberprotected java.lang.StringnewObjectNameprotected TableNamenewTableNameprotected java.lang.StringoldObjectNameprotected intrenamingWhatprotected TableDescriptortdprotected booleanusedAlterTable-
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) voidacceptChildren(Visitor v)Accept a visitor on all child nodes.voidbindStatement()Bind this node.private StandardExceptiondescriptorExistsException(TupleDescriptor tuple, TupleDescriptor parent)ConstantActionmakeConstantAction()Create the Constant information that will drive the guts of ExecutionbooleanreferencesSessionSchema()Return true if the node references SESSION schema tables (temporary or permanent)private voidrenameColumnBind(DataDictionary dd)private voidrenameTableBind(DataDictionary dd)(package private) java.lang.StringstatementToString()java.lang.StringtoString()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 StandardExceptionConstructor 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:
toStringin classDDLStatementNode- Returns:
- This object as a String
-
statementToString
java.lang.String statementToString()
- Specified by:
statementToStringin classStatementNode
-
bindStatement
public void bindStatement() throws StandardExceptionBind 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:
bindStatementin classStatementNode- Throws:
StandardException- Thrown on error
-
referencesSessionSchema
public boolean referencesSessionSchema() throws StandardExceptionReturn true if the node references SESSION schema tables (temporary or permanent)- Overrides:
referencesSessionSchemain 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:
makeConstantActionin 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:QueryTreeNodeAccept 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:
acceptChildrenin classDDLStatementNode- Parameters:
v- the visitor- Throws:
StandardException- on errors raised by the visitor
-
-