Class CreateIndexNode
- 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.CreateIndexNode
-
- All Implemented Interfaces:
Visitable
class CreateIndexNode extends DDLStatementNode
A CreateIndexNode is the root of a QueryTree that represents a CREATE INDEX statement.
-
-
Field Summary
Fields Modifier and Type Field Description private int[]
boundColumnIDs
private java.util.List<java.lang.String>
columnNameList
private java.lang.String[]
columnNames
private TableName
indexName
private java.lang.String
indexType
private boolean[]
isAscending
private java.util.Properties
properties
private TableName
tableName
private TableDescriptor
td
private boolean
unique
-
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 CreateIndexNode(boolean unique, java.lang.String indexType, TableName indexName, TableName tableName, java.util.List<java.lang.String> columnNameList, java.util.Properties properties, ContextManager cm)
Constructor for a CreateIndexNode
-
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 CreateIndexNode.ConstantAction
makeConstantAction()
Create the Constant information that will drive the guts of Execution.boolean
referencesSessionSchema()
Return true if the node references SESSION schema tables (temporary or permanent)(package private) java.lang.String
statementToString()
java.lang.String
toString()
Convert this object to a String.private void
verifyAndGetUniqueNames()
Check the uniqueness of the column names within the derived column list.-
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
-
unique
private boolean unique
-
properties
private java.util.Properties properties
-
indexType
private java.lang.String indexType
-
indexName
private TableName indexName
-
tableName
private TableName tableName
-
columnNameList
private java.util.List<java.lang.String> columnNameList
-
columnNames
private java.lang.String[] columnNames
-
isAscending
private boolean[] isAscending
-
boundColumnIDs
private int[] boundColumnIDs
-
td
private TableDescriptor td
-
-
Constructor Detail
-
CreateIndexNode
CreateIndexNode(boolean unique, java.lang.String indexType, TableName indexName, TableName tableName, java.util.List<java.lang.String> columnNameList, java.util.Properties properties, ContextManager cm) throws StandardException
Constructor for a CreateIndexNode- Parameters:
unique
- True means it's a unique indexindexType
- The type of indexindexName
- The name of the indextableName
- The name of the table the index will be oncolumnNameList
- A list of column names, in the order they appear in the index.properties
- The optional properties list associated with the index.cm
- 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 CreateIndexNode. This means doing any static error checking that can be done before actually creating the table. For example, verifying that the column name list 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
-
verifyAndGetUniqueNames
private void verifyAndGetUniqueNames() throws StandardException
Check the uniqueness of the column names within the derived column list.- Throws:
StandardException
- Thrown if column list contains a duplicate name.
-
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
-
-