org.apache.derby.impl.sql.compile
Class CreateViewNode

java.lang.Object
  extended byorg.apache.derby.impl.sql.compile.QueryTreeNode
      extended byorg.apache.derby.impl.sql.compile.StatementNode
          extended byorg.apache.derby.impl.sql.compile.DDLStatementNode
              extended byorg.apache.derby.impl.sql.compile.CreateStatementNode
                  extended byorg.apache.derby.impl.sql.compile.CreateViewNode
All Implemented Interfaces:
Visitable

public class CreateViewNode
extends CreateStatementNode

A CreateViewNode is the root of a QueryTree that represents a CREATE VIEW statement.

Author:
Jerry Brenner

Field Summary
(package private)  int checkOption
           
(package private)  ColumnInfo[] colInfos
           
(package private)  Dependent currentDependent
           
(package private)  ProviderInfo[] providerInfos
           
(package private)  java.lang.String qeText
           
(package private)  ResultSetNode queryExpression
           
(package private)  ResultColumnList resultColumns
           
 
Fields inherited from class org.apache.derby.impl.sql.compile.DDLStatementNode
ADD_TYPE, DROP_TYPE, implicitCreateSchema, LOCKING_TYPE, MODIFY_TYPE, UNKNOWN_TYPE
 
Fields inherited from class org.apache.derby.impl.sql.compile.StatementNode
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_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX, beginOffset, endOffset
 
Constructor Summary
CreateViewNode()
           
 
Method Summary
 Visitable accept(Visitor v)
          Accept a visitor, and call v.visit() on child nodes as necessary.
 QueryTreeNode bind()
          Bind this CreateViewNode.
private  ProviderInfo[] bindViewDefinition(DataDictionary dataDictionary, CompilerContext compilerContext, LanguageConnectionContext lcc, NodeFactory nodeFactory, ResultSetNode queryExpr, ContextManager cm)
          Bind the query expression for a view definition.
private  void genColumnInfos(ColumnInfo[] colInfos)
          Fill in the ColumnInfo[] for this create view.
 int getCheckOption()
           
 ColumnInfo[] getColumnInfo()
           
(package private)  ResultSetNode getParsedQueryExpression()
          Get the parsed query expression (the SELECT statement).
 ProviderInfo[] getProviderInfo()
           
 void init(java.lang.Object newObjectName, java.lang.Object resultColumns, java.lang.Object queryExpression, java.lang.Object checkOption, java.lang.Object qeText)
          Initializer for a CreateViewNode
 ConstantAction makeConstantAction()
          Create the Constant information that will drive the guts of Execution.
 void printSubNodes(int depth)
          Prints the sub-nodes of this object.
 boolean referencesSessionSchema()
          Return true if the node references SESSION schema tables (temporary or permanent)
 java.lang.String statementToString()
           
 java.lang.String toString()
          Convert this object to a String.
 
Methods inherited from class org.apache.derby.impl.sql.compile.CreateStatementNode
alterItem, isCreate
 
Methods inherited from class org.apache.derby.impl.sql.compile.DDLStatementNode
activationKind, bindName, generate, getFullName, getObjectName, getRelativeName, getSchemaDescriptor, getTableDescriptor, getTableDescriptor, getTableDescriptor, init, initAndCheck, isAtomic
 
Methods inherited from class org.apache.derby.impl.sql.compile.StatementNode
generate, lockTableForCompilation
 
Methods inherited from class org.apache.derby.impl.sql.compile.QueryTreeNode
convertDefaultNode, debugFlush, debugPrint, executeSchemaName, executeStatementName, formatNodeString, foundString, generateAuthorizeCheck, getBeginOffset, getClassFactory, getCompilerContext, getContextManager, getCursorInfo, getDataDictionary, getDependencyManager, getEndOffset, getExecutionFactory, getGenericConstantActionFactory, getIntProperty, getLanguageConnectionContext, getNodeFactory, getNodeType, getNullNode, getParameterTypes, getRowEstimate, getSchemaDescriptor, getSchemaDescriptor, getSPSName, getStatementType, getTableDescriptor, getTypeCompiler, init, init, init, init, init, init, init, init, init, init, init, init, isInstanceOf, isSessionSchema, isSessionSchema, makeResultDescription, makeTableName, needsSavepoint, nodeHeader, optimize, parseQueryText, printLabel, resolveTableToSynonym, setBeginOffset, setContextManager, setEndOffset, setNodeType, setRefActionInfo, treePrint, treePrint, verifyClassExist
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

currentDependent

Dependent currentDependent

resultColumns

ResultColumnList resultColumns

queryExpression

ResultSetNode queryExpression

qeText

java.lang.String qeText

checkOption

int checkOption

providerInfos

ProviderInfo[] providerInfos

colInfos

ColumnInfo[] colInfos
Constructor Detail

CreateViewNode

public CreateViewNode()
Method Detail

init

public void init(java.lang.Object newObjectName,
                 java.lang.Object resultColumns,
                 java.lang.Object queryExpression,
                 java.lang.Object checkOption,
                 java.lang.Object qeText)
          throws StandardException
Initializer for a CreateViewNode

Overrides:
init in class QueryTreeNode
Parameters:
newObjectName - The name of the table to be created
resultColumns - The column list from the view definition, if specified
queryExpression - The query expression for the view
checkOption - The type of WITH CHECK OPTION that was specified (NONE for now)
qeText - The text for the queryExpression
Throws:
StandardException - Thrown on error

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 class DDLStatementNode
Returns:
This object as a String

statementToString

public java.lang.String statementToString()
Specified by:
statementToString in class StatementNode

printSubNodes

public void printSubNodes(int depth)
Prints the sub-nodes of this object. See QueryTreeNode.java for how tree printing is supposed to work.

Overrides:
printSubNodes in class QueryTreeNode
Parameters:
depth - The depth of this node in the tree
Returns:
Nothing

getCheckOption

public int getCheckOption()

getProviderInfo

public ProviderInfo[] getProviderInfo()

getColumnInfo

public ColumnInfo[] getColumnInfo()

bind

public QueryTreeNode bind()
                   throws StandardException
Bind this CreateViewNode. This means doing any static error checking that can be done before actually creating the table. For example, verifying that the ResultColumnList does not contain any duplicate column names.

Overrides:
bind in class QueryTreeNode
Returns:
The bound query tree
Throws:
StandardException - Thrown on error

bindViewDefinition

private ProviderInfo[] bindViewDefinition(DataDictionary dataDictionary,
                                          CompilerContext compilerContext,
                                          LanguageConnectionContext lcc,
                                          NodeFactory nodeFactory,
                                          ResultSetNode queryExpr,
                                          ContextManager cm)
                                   throws StandardException
Bind the query expression for a view definition.

Parameters:
dataDictionary - The DataDictionary to use to look up columns, tables, etc.
Returns:
Array of providers that this view depends on.
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 class QueryTreeNode
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 class QueryTreeNode
Throws:
StandardException - Thrown on failure

genColumnInfos

private void genColumnInfos(ColumnInfo[] colInfos)
Fill in the ColumnInfo[] for this create view.

Parameters:
colInfos - The ColumnInfo[] to be filled in.
Returns:
Nothing.

getParsedQueryExpression

ResultSetNode getParsedQueryExpression()
Get the parsed query expression (the SELECT statement).

Returns:
the parsed query expression.

accept

public Visitable accept(Visitor v)
                 throws StandardException
Accept a visitor, and call v.visit() on child nodes as necessary.

Specified by:
accept in interface Visitable
Overrides:
accept in class QueryTreeNode
Parameters:
v - the visitor
Throws:
StandardException - on error

Built on Tue 2006-10-10 19:23:47+0200, from revision exported

Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.