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
A RenameNode is the root of a QueryTree that represents a
RENAME TABLE/COLUMN/INDEX statement.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate longprotected Stringprotected TableNameprotected Stringprotected intprotected TableDescriptorprotected booleanFields inherited from class DDLStatementNode
ADD_TYPE, DROP_STATISTICS, DROP_TYPE, implicitCreateSchema, LOCKING_TYPE, MODIFY_TYPE, UNKNOWN_TYPE, UPDATE_STATISTICSFields inherited from class StatementNode
EMPTY_TD_LIST, NEED_CURSOR_ACTIVATION, NEED_DDL_ACTIVATION, NEED_NOTHING_ACTIVATION, NEED_PARAM_ACTIVATION, NEED_ROW_ACTIVATIONFields inherited from class QueryTreeNode
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_CYCLE, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX -
Constructor Summary
ConstructorsConstructorDescriptionRenameNode(Object tableName, String oldObjectName, String newObjectName, boolean usedAlterTable, int renamingWhat, ContextManager cm) Constructor for a RenameNode -
Method Summary
Modifier and TypeMethodDescription(package private) voidAccept a visitor on all child nodes.voidBind this node.private StandardExceptiondescriptorExistsException(TupleDescriptor tuple, TupleDescriptor parent) Create the Constant information that will drive the guts of ExecutionbooleanReturn true if the node references SESSION schema tables (temporary or permanent)private voidprivate void(package private) StringtoString()Convert this object to a String.Methods inherited from class DDLStatementNode
activationKind, generate, getFullName, getObjectName, getRelativeName, getSchemaDescriptor, getSchemaDescriptor, getTableDescriptor, getTableDescriptor, getTableDescriptor, getTableDescriptor, initAndCheck, isAtomic, makeFromListMethods inherited from class StatementNode
executeSchemaName, executeStatementName, generate, getCursorInfo, getSPSName, lockTableForCompilation, makeResultDescription, needsSavepoint, optimizeStatement, updateIndexStatisticsForMethods inherited from class 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 Details
-
newTableName
-
oldObjectName
-
newObjectName
-
td
-
conglomerateNumber
private long conglomerateNumber -
usedAlterTable
protected boolean usedAlterTable -
renamingWhat
protected int renamingWhat
-
-
Constructor Details
-
RenameNode
RenameNode(Object tableName, String oldObjectName, 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 Details
-
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
String statementToString()- Specified by:
statementToStringin classStatementNode
-
bindStatement
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:
bindStatementin classStatementNode- Throws:
StandardException- Thrown on error
-
referencesSessionSchema
Return 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
- Throws:
StandardException
-
renameColumnBind
- Throws:
StandardException
-
makeConstantAction
Create the Constant information that will drive the guts of Execution- Overrides:
makeConstantActionin classQueryTreeNode- Throws:
StandardException- Thrown on failure
-
descriptorExistsException
-
acceptChildren
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
-