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[]boundColumnIDsprivate java.util.List<java.lang.String>columnNameListprivate java.lang.String[]columnNamesprivate TableNameindexNameprivate java.lang.StringindexTypeprivate boolean[]isAscendingprivate java.util.Propertiespropertiesprivate TableNametableNameprivate TableDescriptortdprivate booleanunique-
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) voidacceptChildren(Visitor v)Accept a visitor on all child nodes.voidbindStatement()Bind this CreateIndexNode.ConstantActionmakeConstantAction()Create the Constant information that will drive the guts of Execution.booleanreferencesSessionSchema()Return true if the node references SESSION schema tables (temporary or permanent)(package private) java.lang.StringstatementToString()java.lang.StringtoString()Convert this object to a String.private voidverifyAndGetUniqueNames()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 StandardExceptionConstructor 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:
toStringin classDDLStatementNode- Returns:
- This object as a String
-
statementToString
java.lang.String statementToString()
- Specified by:
statementToStringin classStatementNode
-
bindStatement
public void bindStatement() throws StandardExceptionBind 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:
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
-
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
-
verifyAndGetUniqueNames
private void verifyAndGetUniqueNames() throws StandardExceptionCheck 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: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
-
-