Top Description Fields Constructors Methods
org.apache.derby.impl.sql.compile

pack-priv Class RenameNode

extends DDLStatementNode
Class Inheritance
Imports
org.apache.derby.shared.common.error.StandardException, org.apache.derby.shared.common.reference.SQLState, org.apache.derby.iapi.services.context.ContextManager, org.apache.derby.shared.common.sanity.SanityManager, org.apache.derby.iapi.sql.StatementType, org.apache.derby.iapi.sql.compile.CompilerContext, .Visitor, org.apache.derby.iapi.sql.dictionary.ColumnDescriptor, .ColumnDescriptorList, .ConglomerateDescriptor, .ConstraintDescriptor, .ConstraintDescriptorList, .DataDictionary, .SchemaDescriptor, .TableDescriptor, .TupleDescriptor, org.apache.derby.iapi.sql.execute.ConstantAction

A RenameNode is the root of a QueryTree that represents a RENAME TABLE/COLUMN/INDEX statement.

Field Summary

Modifier and TypeField and Description
private long
protected String
protected TableName
protected String
protected int
protected TableDescriptor
protected boolean
Inherited from org.apache.derby.impl.sql.compile.DDLStatementNode:
ADD_TYPEDROP_STATISTICSDROP_TYPEimplicitCreateSchemaLOCKING_TYPEMODIFY_TYPEUNKNOWN_TYPEUPDATE_STATISTICS

Constructor Summary

AccessConstructor and Description
pack-priv
RenameNode(Object
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.
tableName
,
String
This is either the name of column/index in case of rename column/index. For rename table, this is null.
oldObjectName
,
String
This is new name for table/column/index
newObjectName
,
boolean
True-Used Alter Table, False-Used Rename. For rename index, this will always be false because there is no alter table command to rename index
usedAlterTable
,
int
Rename a 1 - table, 2 - column, 3 - index
renamingWhat
,
ContextManager
context manager
cm
)

Constructor for a RenameNode

Method Summary

Modifier and TypeMethod and Description
pack-priv void
acceptChildren(Visitor
the visitor
v
)

Overrides org.apache.derby.impl.sql.compile.DDLStatementNode.acceptChildren.

Accept a visitor on all child nodes.

public void
private StandardException
public ConstantAction
makeConstantAction()

Overrides org.apache.derby.impl.sql.compile.QueryTreeNode.makeConstantAction.

Create the Constant information that will drive the guts of Execution

public boolean

Returns:

true if references SESSION schema tables, else false
referencesSessionSchema
()

Overrides org.apache.derby.impl.sql.compile.QueryTreeNode.referencesSessionSchema.

Return true if the node references SESSION schema tables (temporary or permanent)

private void
private void
pack-priv String
public String

Returns:

This object as a String
toString
()

Overrides org.apache.derby.impl.sql.compile.DDLStatementNode.toString.

Convert this object to a String.

Inherited from org.apache.derby.impl.sql.compile.DDLStatementNode:
activationKindgenerategetFullNamegetObjectNamegetRelativeNamegetSchemaDescriptorgetSchemaDescriptorgetTableDescriptorgetTableDescriptorgetTableDescriptorgetTableDescriptorinitAndCheckisAtomicmakeFromList

Field Detail

conglomerateNumberback to summary
private long conglomerateNumber
newObjectNameback to summary
protected String newObjectName
newTableNameback to summary
protected TableName newTableName
oldObjectNameback to summary
protected String oldObjectName
renamingWhatback to summary
protected int renamingWhat
tdback to summary
protected TableDescriptor td
usedAlterTableback to summary
protected boolean usedAlterTable

Constructor Detail

RenameNodeback to summary
pack-priv RenameNode(Object tableName, String oldObjectName, String newObjectName, boolean usedAlterTable, int renamingWhat, ContextManager cm) throws StandardException

Constructor for a RenameNode

Parameters
tableName:Object

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:String

This is either the name of column/index in case of rename column/index. For rename table, this is null.

newObjectName:String

This is new name for table/column/index

usedAlterTable:boolean

True-Used Alter Table, False-Used Rename. For rename index, this will always be false because there is no alter table command to rename index

renamingWhat:int

Rename a 1 - table, 2 - column, 3 - index

cm:ContextManager

context manager

Exceptions
StandardException:
Thrown on error

Method Detail

acceptChildrenback to summary
pack-priv void acceptChildren(Visitor v) throws StandardException

Overrides org.apache.derby.impl.sql.compile.DDLStatementNode.acceptChildren.

Doc from org.apache.derby.impl.sql.compile.QueryTreeNode.acceptChildren.

Accept a visitor on all child nodes. All sub-classes that add fields that should be visited, should override this method and call accept(v) on all visitable fields, as well as super.acceptChildren(v) to make sure all visitable fields defined by the super-class are accepted too.

Parameters
v:Visitor

the visitor

Annotations
@Override
Exceptions
StandardException:
on errors raised by the visitor
bindStatementback to summary
public void bindStatement() throws StandardException

Overrides org.apache.derby.impl.sql.compile.StatementNode.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.

Annotations
@Override
Exceptions
StandardException:
Thrown on error
descriptorExistsExceptionback to summary
private StandardException descriptorExistsException(TupleDescriptor tuple, TupleDescriptor parent)
makeConstantActionback to summary
public ConstantAction makeConstantAction() throws StandardException

Overrides org.apache.derby.impl.sql.compile.QueryTreeNode.makeConstantAction.

Create the Constant information that will drive the guts of Execution

Annotations
@Override
Exceptions
StandardException:
Thrown on failure
referencesSessionSchemaback to summary
public boolean referencesSessionSchema() throws StandardException

Overrides org.apache.derby.impl.sql.compile.QueryTreeNode.referencesSessionSchema.

Return true if the node references SESSION schema tables (temporary or permanent)

Returns:boolean

true if references SESSION schema tables, else false

Annotations
@Override
Exceptions
StandardException:
Thrown on error
renameColumnBindback to summary
private void renameColumnBind(DataDictionary dd) throws StandardException
renameTableBindback to summary
private void renameTableBind(DataDictionary dd) throws StandardException
statementToStringback to summary
pack-priv String statementToString()

Implements abstract org.apache.derby.impl.sql.compile.StatementNode.statementToString.

toStringback to summary
public String toString()

Overrides org.apache.derby.impl.sql.compile.DDLStatementNode.toString.

Convert this object to a String. See comments in QueryTreeNode.java for how this should be done for tree printing.

Returns:String

This object as a String

Annotations
@Override