You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by da...@apache.org on 2013/06/21 09:47:52 UTC
svn commit: r1495305 [6/21] - in /db/derby/code/trunk:
java/engine/org/apache/derby/ java/engine/org/apache/derby/catalog/types/
java/engine/org/apache/derby/iapi/services/io/
java/engine/org/apache/derby/iapi/sql/
java/engine/org/apache/derby/iapi/sql...
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DMLModStatementNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DMLModStatementNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DMLModStatementNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DMLModStatementNode.java Fri Jun 21 07:47:47 2013
@@ -25,7 +25,6 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
-
import org.apache.derby.catalog.DefaultInfo;
import org.apache.derby.catalog.UUID;
import org.apache.derby.iapi.error.StandardException;
@@ -37,9 +36,8 @@ import org.apache.derby.iapi.services.co
import org.apache.derby.iapi.services.io.FormatableBitSet;
import org.apache.derby.iapi.services.sanity.SanityManager;
import org.apache.derby.iapi.sql.StatementType;
-import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.compile.CompilerContext;
-import org.apache.derby.iapi.sql.compile.NodeFactory;
+import org.apache.derby.iapi.sql.compile.OptimizerFactory;
import org.apache.derby.iapi.sql.compile.Parser;
import org.apache.derby.iapi.sql.compile.Visitable;
import org.apache.derby.iapi.sql.compile.Visitor;
@@ -59,8 +57,8 @@ import org.apache.derby.iapi.sql.diction
import org.apache.derby.iapi.sql.dictionary.SchemaDescriptor;
import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
import org.apache.derby.iapi.sql.dictionary.TriggerDescriptor;
-import org.apache.derby.iapi.types.DataTypeDescriptor;
import org.apache.derby.iapi.store.access.TransactionController;
+import org.apache.derby.iapi.types.DataTypeDescriptor;
import org.apache.derby.impl.sql.execute.FKInfo;
import org.apache.derby.impl.sql.execute.TriggerInfo;
@@ -81,7 +79,7 @@ abstract class DMLModStatementNode exten
protected FKInfo[] fkInfo; // array of FKInfo structures
// generated during bind
protected TriggerInfo triggerInfo; // generated during bind
- public TableDescriptor targetTableDescriptor;
+ TableDescriptor targetTableDescriptor;
/* The indexes that could be affected by this statement */
@@ -109,30 +107,26 @@ abstract class DMLModStatementNode exten
/** Set of dependent tables for cascading deletes. */
Set<String> dependentTables;
- /**
- * Initializer for a DMLModStatementNode -- delegate to DMLStatementNode
- *
- * @param resultSet A ResultSetNode for the result set of the
- * DML statement
- */
- public void init(Object resultSet)
- {
- super.init(resultSet);
- statementType = getStatementType();
- }
+ DMLModStatementNode(ResultSetNode resultSet, ContextManager cm) {
+ super(resultSet, cm);
+ statementType = getStatementType();
+ }
/**
- * Initializer for a DMLModStatementNode -- delegate to DMLStatementNode
+ * Constructor for a DMLModStatementNode -- delegate to DMLStatementNode
*
* @param resultSet A ResultSetNode for the result set of the
* DML statement
* @param statementType used by nodes that allocate a DMLMod directly
* (rather than inheriting it).
+ * @param cm The context manager
*/
- public void init(Object resultSet, Object statementType)
+ DMLModStatementNode(ResultSetNode resultSet,
+ int statementType,
+ ContextManager cm)
{
- super.init(resultSet);
- this.statementType = ((Integer) statementType).intValue();
+ super(resultSet, cm);
+ this.statementType = statementType;
}
void setTarget(QueryTreeNode targetName)
@@ -254,7 +248,7 @@ abstract class DMLModStatementNode exten
* the JDBC2.0 getMetaData() and getResultSetConcurrency()
* methods and return an updatable ResultSet.
*/
- FromList dummyFromList = new FromList();
+ FromList dummyFromList = new FromList(getContextManager());
targetVTI = (FromVTI) targetVTI.bindNonVTITables(dataDictionary, dummyFromList);
targetVTI = (FromVTI) targetVTI.bindVTITables(dummyFromList);
}
@@ -266,6 +260,7 @@ abstract class DMLModStatementNode exten
*
* @return true
*/
+ @Override
public boolean isAtomic()
{
return true;
@@ -280,7 +275,7 @@ abstract class DMLModStatementNode exten
* @exception StandardException throws on schema name
* that doesn't exist
*/
- public SchemaDescriptor getSchemaDescriptor() throws StandardException
+ SchemaDescriptor getSchemaDescriptor() throws StandardException
{
SchemaDescriptor sd;
@@ -305,7 +300,8 @@ abstract class DMLModStatementNode exten
the language both use 0 base or 1 base offsets for columns. Today
we can't use the store function because we have a 1 based FormatableBitSet.
*/
- public static int[] getReadColMap(int column_map_length,FormatableBitSet readColsBitSet)
+ static int[] getReadColMap(int column_map_length,
+ FormatableBitSet readColsBitSet)
{
if (readColsBitSet == null) return null;
@@ -357,23 +353,17 @@ abstract class DMLModStatementNode exten
throws StandardException
{
/* Get a ResultColumnList representing all the columns in the target */
- FromBaseTable fbt =
- (FromBaseTable)
- (getNodeFactory().getNode(
- C_NodeTypes.FROM_BASE_TABLE,
- synonymTableName != null ? synonymTableName : targetTableName,
- null,
- null,
- null,
- getContextManager())
- );
+ FromBaseTable fbt = new FromBaseTable(
+ synonymTableName != null ? synonymTableName : targetTableName,
+ null,
+ null,
+ null,
+ getContextManager());
fbt.bindNonVTITables(
getDataDictionary(),
- (FromList) getNodeFactory().getNode(
- C_NodeTypes.FROM_LIST,
- getNodeFactory().doJoinOrderOptimization(),
- getContextManager()));
+ new FromList(getOptimizerFactory().doJoinOrderOptimization(),
+ getContextManager()));
getResultColumnList(
fbt,
@@ -452,13 +442,8 @@ abstract class DMLModStatementNode exten
// insert CAST in case column data type is not same as the
// resolved type of the generation clause
- generationClause = (ValueNode) getNodeFactory().getNode
- (
- C_NodeTypes.CAST_NODE,
- generationClause,
- dtd,
- getContextManager()
- );
+ generationClause =
+ new CastNode(generationClause, dtd, getContextManager());
// Assignment semantics of implicit cast here:
// Section 9.2 (Store assignment). There, General Rule
@@ -476,15 +461,22 @@ abstract class DMLModStatementNode exten
compilerContext.pushCompilationSchema( originalCurrentSchema );
try {
- bindRowScopedExpression( getNodeFactory(), getContextManager(), targetTableDescriptor, sourceRCL, generationClause );
+ bindRowScopedExpression(
+ getOptimizerFactory(),
+ getContextManager(),
+ targetTableDescriptor,
+ sourceRCL,
+ generationClause );
}
finally
{
compilerContext.popCompilationSchema();
}
- ResultColumn newRC = (ResultColumn) getNodeFactory().getNode
- ( C_NodeTypes.RESULT_COLUMN, generationClause.getTypeServices(), generationClause, getContextManager());
+ ResultColumn newRC = new ResultColumn(
+ generationClause.getTypeServices(),
+ generationClause,
+ getContextManager());
// replace the result column in place
newRC.setVirtualColumnId( i + 1 ); // column ids are 1-based
@@ -532,7 +524,6 @@ abstract class DMLModStatementNode exten
Parser p;
ValueNode clauseTree;
LanguageConnectionContext lcc = getLanguageConnectionContext();
- CompilerContext compilerContext = getCompilerContext();
/* Get a Statement to pass to the parser */
@@ -615,7 +606,7 @@ abstract class DMLModStatementNode exten
ValueNode bindConstraints
(
DataDictionary dataDictionary,
- NodeFactory nodeFactory,
+ OptimizerFactory optimizerFactory,
TableDescriptor targetTableDescriptor,
Dependent dependent,
ResultColumnList sourceRCL,
@@ -665,7 +656,8 @@ abstract class DMLModStatementNode exten
compilerContext.pushCompilationSchema( originalCurrentSchema );
try {
- bindRowScopedExpression(nodeFactory, getContextManager(),
+ bindRowScopedExpression(optimizerFactory,
+ getContextManager(),
targetTableDescriptor,
sourceRCL,
checkConstraints);
@@ -688,17 +680,19 @@ abstract class DMLModStatementNode exten
* Binds an already parsed expression that only involves columns in a single
* row. E.g., a check constraint or a generation clause.
*
- * @param nodeFactory Where to get query tree nodes.
- * @param targetTableDescriptor The TableDescriptor for the constrained table.
- * @param sourceRCL Result columns.
- * @param expression Parsed query tree for row scoped expression
+ * @param optimizerFactory The optimizer factory
+ * @param cm The context manager
+ * @param targetTableDescriptor The TableDescriptor for the constrained
+ * table
+ * @param sourceRCL Result columns
+ * @param expression Parsed query tree for row scoped expression
*
* @exception StandardException Thrown on failure
*/
static void bindRowScopedExpression
(
- NodeFactory nodeFactory,
- ContextManager contextManager,
+ OptimizerFactory optimizerFactory,
+ ContextManager cm,
TableDescriptor targetTableDescriptor,
ResultColumnList sourceRCL,
ValueNode expression
@@ -706,8 +700,10 @@ abstract class DMLModStatementNode exten
throws StandardException
{
- TableName targetTableName = makeTableName
- (nodeFactory, contextManager, targetTableDescriptor.getSchemaName(), targetTableDescriptor.getName());
+ TableName targetTableName = makeTableName(
+ cm,
+ targetTableDescriptor.getSchemaName(),
+ targetTableDescriptor.getName());
/* We now have the expression as a query tree. Now, we prepare
* to bind that query tree to the source's RCL. That way, the
@@ -727,27 +723,23 @@ abstract class DMLModStatementNode exten
* In this case, the caller of bindConstraints (UpdateNode)
* has chosen to pass in the correct RCL to bind against.
*/
- FromList fakeFromList =
- (FromList) nodeFactory.getNode(
- C_NodeTypes.FROM_LIST,
- nodeFactory.doJoinOrderOptimization(),
- contextManager);
- FromBaseTable table = (FromBaseTable)
- nodeFactory.getNode(
- C_NodeTypes.FROM_BASE_TABLE,
- targetTableName,
- null,
- sourceRCL,
- null,
- contextManager);
+ FromList fakeFromList =
+ new FromList(optimizerFactory.doJoinOrderOptimization(), cm);
+
+ FromBaseTable table = new FromBaseTable(
+ targetTableName,
+ null,
+ sourceRCL,
+ null,
+ cm);
table.setTableNumber(0);
fakeFromList.addFromTable(table);
// Now we can do the bind.
- expression = expression.bindExpression(
- fakeFromList,
- (SubqueryList) null,
- (List<AggregateNode>) null);
+ expression.bindExpression(
+ fakeFromList,
+ (SubqueryList) null,
+ (List<AggregateNode>) null);
}
/**
@@ -827,9 +819,7 @@ abstract class DMLModStatementNode exten
parseCheckConstraint(constraintText, td);
// Put a TestConstraintNode above the constraint tree
- TestConstraintNode tcn =
- (TestConstraintNode) getNodeFactory().getNode(
- C_NodeTypes.TEST_CONSTRAINT_NODE,
+ TestConstraintNode tcn = new TestConstraintNode(
oneConstraint,
SQLState.LANG_CHECK_CONSTRAINT_VIOLATED,
td.getQualifiedName(),
@@ -843,11 +833,7 @@ abstract class DMLModStatementNode exten
}
else
{
- checkTree = (ValueNode) getNodeFactory().getNode(
- C_NodeTypes.AND_NODE,
- tcn,
- checkTree,
- getContextManager());
+ checkTree = new AndNode(tcn, checkTree, getContextManager());
}
}
@@ -878,15 +864,15 @@ abstract class DMLModStatementNode exten
{
ArrayList<FKInfo> fkList = new ArrayList<FKInfo>();
int type;
- UUID[] uuids = null;
- long[] conglomNumbers = null;
- String[] fkNames = null;
+ UUID[] uuids;
+ long[] conglomNumbers;
+ String[] fkNames;
ConstraintDescriptorList fkcdl;
ReferencedKeyConstraintDescriptor refcd;
boolean[] isSelfReferencingFK;
ConstraintDescriptorList activeList = dd.getActiveConstraintDescriptors(cdl);
int[] rowMap = getRowMap(readColsBitSet, td);
- int[] raRules = null;
+ int[] raRules;
ArrayList<String> refTableNames = new ArrayList<String>(1);
ArrayList<Long> refIndexConglomNum = new ArrayList<Long>(1);
ArrayList<Integer> refActions = new ArrayList<Integer>(1);
@@ -943,7 +929,6 @@ abstract class DMLModStatementNode exten
conglomNumbers = new long[size];
isSelfReferencingFK = new boolean[size];
raRules = new int[size];
- ForeignKeyConstraintDescriptor fkcd = null;
TableDescriptor fktd;
ColumnDescriptorList coldl;
int[] refColumns;
@@ -951,7 +936,8 @@ abstract class DMLModStatementNode exten
int[] colArray = remapReferencedColumns(cd, rowMap);
for (int inner = 0; inner < size; inner++)
{
- fkcd = (ForeignKeyConstraintDescriptor) fkcdl.elementAt(inner);
+ ForeignKeyConstraintDescriptor fkcd =
+ (ForeignKeyConstraintDescriptor) fkcdl.elementAt(inner);
fkSetupArrays(dd, fkcd,
inner, uuids, conglomNumbers, fkNames,
isSelfReferencingFK, raRules);
@@ -961,18 +947,19 @@ abstract class DMLModStatementNode exten
//find the referencing table Name
fktd = fkcd.getTableDescriptor();
refTableNames.add(fktd.getSchemaName() + "." + fktd.getName());
- refActions.add(new Integer(raRules[inner]));
+ refActions.add(Integer.valueOf(raRules[inner]));
//find the referencing column name required for update null.
refColumns = fkcd.getReferencedColumns();
coldl = fktd.getColumnDescriptorList();
ColumnDescriptorList releventColDes = new ColumnDescriptorList();
for(int i = 0 ; i < refColumns.length; i++)
{
- cold =(ColumnDescriptor)coldl.elementAt(refColumns[i]-1);
+ cold = coldl.elementAt(refColumns[i]-1);
releventColDes.add(cold);
}
refColDescriptors.add(releventColDes);
- refIndexConglomNum.add(new Long(conglomNumbers[inner]));
+ refIndexConglomNum.add(
+ Long.valueOf(conglomNumbers[inner]));
fkColMap.add(colArray);
}
}
@@ -1006,7 +993,7 @@ abstract class DMLModStatementNode exten
// Now convert the list into an array.
if (!fkList.isEmpty()) {
- fkInfo = (FKInfo[]) fkList.toArray(new FKInfo[fkList.size()]);
+ fkInfo = fkList.toArray(new FKInfo[fkList.size()]);
}
// Convert the ref action info lists to arrays.
@@ -1078,7 +1065,7 @@ abstract class DMLModStatementNode exten
*
* @return the array of fkinfos
*/
- public FKInfo[] getFKInfo()
+ FKInfo[] getFKInfo()
{
if (SanityManager.DEBUG)
{
@@ -1095,7 +1082,7 @@ abstract class DMLModStatementNode exten
*
* @return the trigger info
*/
- public TriggerInfo getTriggerInfo()
+ TriggerInfo getTriggerInfo()
{
if (SanityManager.DEBUG)
{
@@ -1110,7 +1097,7 @@ abstract class DMLModStatementNode exten
*
* @return the check constraints, may be null
*/
- public ValueNode getCheckConstraints()
+ ValueNode getCheckConstraints()
{
if (SanityManager.DEBUG)
{
@@ -1324,7 +1311,7 @@ abstract class DMLModStatementNode exten
*
* @return true/false
*/
- public boolean requiresDeferredProcessing()
+ boolean requiresDeferredProcessing()
{
return requiresDeferredProcessing;
}
@@ -1350,7 +1337,6 @@ abstract class DMLModStatementNode exten
Parser p;
ValueNode checkTree;
LanguageConnectionContext lcc = getLanguageConnectionContext();
- CompilerContext compilerContext = getCompilerContext();
/* Get a Statement to pass to the parser */
@@ -1643,6 +1629,7 @@ abstract class DMLModStatementNode exten
*
* @exception StandardException Thrown on failure
*/
+ @Override
public void optimizeStatement() throws StandardException
{
/* First optimize the query */
@@ -1761,7 +1748,7 @@ abstract class DMLModStatementNode exten
protected void markAffectedIndexes
(
- List affectedConglomerates
+ List<ConglomerateDescriptor> affectedConglomerates
)
throws StandardException
{
@@ -1775,7 +1762,7 @@ abstract class DMLModStatementNode exten
for ( int ictr = 0; ictr < indexCount; ictr++ )
{
- cd = (ConglomerateDescriptor) affectedConglomerates.get( ictr );
+ cd = affectedConglomerates.get( ictr );
indicesToMaintain[ ictr ] = cd.getIndexDescriptor();
indexConglomerateNumbers[ ictr ] = cd.getConglomerateNumber();
@@ -1788,7 +1775,7 @@ abstract class DMLModStatementNode exten
}
- public String statementToString()
+ String statementToString()
{
return "DML MOD";
}
@@ -1851,6 +1838,7 @@ abstract class DMLModStatementNode exten
}
+ @Override
void setRefActionInfo(long fkIndexConglomId,
int[]fkColArray,
String parentResultSetId,
@@ -1870,7 +1858,7 @@ abstract class DMLModStatementNode exten
*
* @exception StandardException Thrown on error
*/
- public void normalizeSynonymColumns(
+ void normalizeSynonymColumns(
ResultColumnList rcl,
TableName targetTableName)
throws StandardException
@@ -1913,8 +1901,8 @@ abstract class DMLModStatementNode exten
*
* @param depth The depth of this node in the tree
*/
-
- public void printSubNodes(int depth)
+ @Override
+ void printSubNodes(int depth)
{
if (SanityManager.DEBUG)
{
@@ -1938,6 +1926,7 @@ abstract class DMLModStatementNode exten
*
* @exception StandardException on error
*/
+ @Override
void acceptChildren(Visitor v)
throws StandardException
{
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DMLStatementNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DMLStatementNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DMLStatementNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DMLStatementNode.java Fri Jun 21 07:47:47 2013
@@ -22,12 +22,11 @@
package org.apache.derby.impl.sql.compile;
import java.util.List;
-
import org.apache.derby.iapi.error.StandardException;
+import org.apache.derby.iapi.services.context.ContextManager;
import org.apache.derby.iapi.services.sanity.SanityManager;
import org.apache.derby.iapi.sql.ResultColumnDescriptor;
import org.apache.derby.iapi.sql.ResultDescription;
-import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.compile.Visitor;
import org.apache.derby.iapi.sql.conn.Authorizer;
import org.apache.derby.iapi.sql.dictionary.DataDictionary;
@@ -65,17 +64,10 @@ abstract class DMLStatementNode extends
*/
ResultSetNode resultSet;
- /**
- * Initializer for a DMLStatementNode
- *
- * @param resultSet A ResultSetNode for the result set of the
- * DML statement
- */
-
- public void init(Object resultSet)
- {
- this.resultSet = (ResultSetNode) resultSet;
- }
+ DMLStatementNode(ResultSetNode resultSet, ContextManager cm) {
+ super(cm);
+ this.resultSet = resultSet;
+ }
/**
* Prints the sub-nodes of this object. See QueryTreeNode.java for
@@ -83,8 +75,8 @@ abstract class DMLStatementNode extends
*
* @param depth The depth of this node in the tree
*/
-
- public void printSubNodes(int depth)
+ @Override
+ void printSubNodes(int depth)
{
if (SanityManager.DEBUG)
{
@@ -103,7 +95,7 @@ abstract class DMLStatementNode extends
*
* @return ResultSetNode The ResultSetNode from this DMLStatementNode.
*/
- public ResultSetNode getResultSetNode()
+ ResultSetNode getResultSetNode()
{
return resultSet;
}
@@ -161,7 +153,7 @@ abstract class DMLStatementNode extends
* @exception StandardException Thrown on error
*/
- public QueryTreeNode bindResultSetsWithTables(DataDictionary dataDictionary)
+ QueryTreeNode bindResultSetsWithTables(DataDictionary dataDictionary)
throws StandardException
{
/* Okay to bindly bind the tables, since ResultSets without tables
@@ -193,18 +185,11 @@ abstract class DMLStatementNode extends
* > 0 because the nodes are create for dependent tables also in the
* the same context.
*/
-
- resultSet = resultSet.bindNonVTITables(
- dataDictionary,
- (FromList) getNodeFactory().getNode(
- C_NodeTypes.FROM_LIST,
- getNodeFactory().doJoinOrderOptimization(),
- getContextManager()));
- resultSet = resultSet.bindVTITables(
- (FromList) getNodeFactory().getNode(
- C_NodeTypes.FROM_LIST,
- getNodeFactory().doJoinOrderOptimization(),
- getContextManager()));
+ boolean doJOO = getOptimizerFactory().doJoinOrderOptimization();
+ ContextManager cm = getContextManager();
+ resultSet = resultSet.bindNonVTITables(dataDictionary,
+ new FromList(doJOO, cm));
+ resultSet = resultSet.bindVTITables(new FromList(doJOO, cm));
}
/**
@@ -216,10 +201,9 @@ abstract class DMLStatementNode extends
protected void bindExpressions()
throws StandardException
{
- FromList fromList = (FromList) getNodeFactory().getNode(
- C_NodeTypes.FROM_LIST,
- getNodeFactory().doJoinOrderOptimization(),
- getContextManager());
+ FromList fromList =
+ new FromList(getOptimizerFactory().doJoinOrderOptimization(),
+ getContextManager());
/* Bind the expressions under the resultSet */
resultSet.bindExpressions(fromList);
@@ -240,10 +224,9 @@ abstract class DMLStatementNode extends
protected void bindExpressionsWithTables()
throws StandardException
{
- FromList fromList = (FromList) getNodeFactory().getNode(
- C_NodeTypes.FROM_LIST,
- getNodeFactory().doJoinOrderOptimization(),
- getContextManager());
+ FromList fromList =
+ new FromList(getOptimizerFactory().doJoinOrderOptimization(),
+ getContextManager());
/* Bind the expressions under the resultSet */
resultSet.bindExpressionsWithTables(fromList);
@@ -265,7 +248,8 @@ abstract class DMLStatementNode extends
*/
int activationKind()
{
- List parameterList = getCompilerContext().getParameterList();
+ List<ParameterNode> parameterList =
+ getCompilerContext().getParameterList();
/*
** We need rows for all types of DML activations. We need parameters
** only for those that have parameters.
@@ -295,6 +279,7 @@ abstract class DMLStatementNode extends
*
* @exception StandardException Thrown on error
*/
+ @Override
public void optimizeStatement() throws StandardException
{
resultSet = resultSet.preprocess(getCompilerContext().getNumTables(),
@@ -338,13 +323,9 @@ abstract class DMLStatementNode extends
siRCList.genVirtualColumnNodes(resultSet, childRCList);
/* Finally, we create the new ScrollInsensitiveResultSetNode */
- resultSet = (ResultSetNode) getNodeFactory().
- getNode(
- C_NodeTypes.SCROLL_INSENSITIVE_RESULT_SET_NODE,
- resultSet,
- siRCList,
- null,
- getContextManager());
+ resultSet = new ScrollInsensitiveResultSetNode(
+ resultSet, siRCList, null, getContextManager());
+
// Propagate the referenced table map if it's already been created
if (siChild.getReferencedTableMap() != null)
{
@@ -368,7 +349,7 @@ abstract class DMLStatementNode extends
*
* @return A ResultDescription for this DML statement
*/
-
+ @Override
public ResultDescription makeResultDescription()
{
ResultColumnDescriptor[] colDescs = resultSet.makeResultDescriptors();
@@ -390,7 +371,8 @@ abstract class DMLStatementNode extends
void generateParameterValueSet(ActivationClassBuilder acb)
throws StandardException
{
- List parameterList = getCompilerContext().getParameterList();
+ List<ParameterNode> parameterList =
+ getCompilerContext().getParameterList();
int numberOfParameters = (parameterList == null) ? 0 : parameterList.size();
if (numberOfParameters <= 0)
@@ -416,6 +398,7 @@ abstract class DMLStatementNode extends
*
* @exception StandardException on error
*/
+ @Override
public boolean isAtomic() throws StandardException
{
/*
@@ -443,6 +426,7 @@ abstract class DMLStatementNode extends
*
* @exception StandardException on error
*/
+ @Override
void acceptChildren(Visitor v)
throws StandardException
{
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DateTypeCompiler.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DateTypeCompiler.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DateTypeCompiler.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DateTypeCompiler.java Fri Jun 21 07:47:47 2013
@@ -21,24 +21,14 @@
package org.apache.derby.impl.sql.compile;
+import java.sql.Types;
+import org.apache.derby.iapi.reference.ClassName;
import org.apache.derby.iapi.services.loader.ClassFactory;
-
-import org.apache.derby.iapi.error.StandardException;
-
+import org.apache.derby.iapi.sql.compile.TypeCompiler;
import org.apache.derby.iapi.types.DataTypeDescriptor;
-import org.apache.derby.iapi.types.DateTimeDataValue;
-import org.apache.derby.iapi.types.DataValueFactory;
import org.apache.derby.iapi.types.TypeId;
-import org.apache.derby.iapi.sql.compile.TypeCompiler;
-
-import org.apache.derby.iapi.services.sanity.SanityManager;
-
-import org.apache.derby.iapi.reference.ClassName;
-
-import java.sql.Types;
-
-public class DateTypeCompiler extends BaseTypeCompiler
+class DateTypeCompiler extends BaseTypeCompiler
{
/* TypeCompiler methods */
/**
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DefaultNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DefaultNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DefaultNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DefaultNode.java Fri Jun 21 07:47:47 2013
@@ -22,26 +22,20 @@
package org.apache.derby.impl.sql.compile;
import java.util.List;
+import org.apache.derby.catalog.types.DefaultInfoImpl;
+import org.apache.derby.iapi.error.StandardException;
import org.apache.derby.iapi.services.compiler.MethodBuilder;
-
+import org.apache.derby.iapi.services.context.ContextManager;
import org.apache.derby.iapi.services.sanity.SanityManager;
-
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.compile.CompilerContext;
import org.apache.derby.iapi.sql.compile.Parser;
-import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.compile.Visitable;
-
import org.apache.derby.iapi.sql.conn.LanguageConnectionContext;
-
import org.apache.derby.iapi.sql.dictionary.ColumnDescriptor;
import org.apache.derby.iapi.sql.dictionary.DefaultDescriptor;
import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
-import org.apache.derby.iapi.error.StandardException;
-
-import org.apache.derby.catalog.types.DefaultInfoImpl;
-
-
/**
* DefaultNode represents a column/parameter default.
*/
@@ -52,26 +46,39 @@ public class DefaultNode extends ValueN
private ValueNode defaultTree;
/**
- * Initializer for a column/parameter default.
+ * Constructor for a generated by default as identity column.
+ *
+ * @param cm The context manager
+ */
+ DefaultNode(ContextManager cm) {
+ super(cm);
+ setNodeType(C_NodeTypes.DEFAULT_NODE);
+ }
+
+ /**
+ * Constructor for a column/parameter default.
*
- * @param defaultTree Query tree for default
+ * @param defaultTree Query tree for default
* @param defaultText The text of the default.
+ * @param cm The context manager
*/
- public void init(
- Object defaultTree,
- Object defaultText)
- {
- this.defaultTree = (ValueNode) defaultTree;
- this.defaultText = (String) defaultText;
+ DefaultNode(ValueNode defaultTree,
+ String defaultText,
+ ContextManager cm) {
+ super(cm);
+ setNodeType(C_NodeTypes.DEFAULT_NODE);
+ this.defaultTree = defaultTree;
+ this.defaultText = defaultText;
}
/**
- * Initializer for insert/update
- *
+ * Constructor for insert/update
+ * @param columnName The column name for which a default is to be applied
*/
- public void init(Object columnName)
- {
- this.columnName = (String) columnName;
+ DefaultNode(String columnName, ContextManager cm) {
+ super(cm);
+ setNodeType(C_NodeTypes.DEFAULT_NODE);
+ this.columnName = columnName;
}
/**
@@ -98,7 +105,7 @@ public class DefaultNode extends ValueN
*
* @return This object as a String
*/
-
+ @Override
public String toString()
{
if (SanityManager.DEBUG)
@@ -119,7 +126,8 @@ public class DefaultNode extends ValueN
*
* @param depth The depth of this node in the tree
*/
- public void printSubNodes(int depth)
+ @Override
+ void printSubNodes(int depth)
{
if (SanityManager.DEBUG)
{
@@ -148,6 +156,7 @@ public class DefaultNode extends ValueN
*
* @exception StandardException Thrown on failure
*/
+ @Override
ValueNode bindExpression(FromList fromList, SubqueryList subqueryList, List<AggregateNode> aggregates)
throws StandardException
{
@@ -183,16 +192,18 @@ public class DefaultNode extends ValueN
DefaultInfoImpl defaultInfo = (DefaultInfoImpl) cd.getDefaultInfo();
if (defaultInfo != null)
{
- String defaultText = defaultInfo.getDefaultText();
- ValueNode defaultTree = parseDefault(defaultText, getLanguageConnectionContext(),
- getCompilerContext());
+ String defaultTxt = defaultInfo.getDefaultText();
+ ValueNode defaultTre = parseDefault(
+ defaultTxt,
+ getLanguageConnectionContext(),
+ getCompilerContext());
/* Query is dependent on the DefaultDescriptor */
DefaultDescriptor defaultDescriptor = cd.getDefaultDescriptor(
getDataDictionary());
getCompilerContext().createDependency(defaultDescriptor);
- return defaultTree.bindExpression(
+ return defaultTre.bindExpression(
fromList,
subqueryList,
aggregates);
@@ -200,10 +211,7 @@ public class DefaultNode extends ValueN
else
{
// Default is null
- ValueNode nullNode = (ValueNode) getNodeFactory().getNode(
- C_NodeTypes.UNTYPED_NULL_CONSTANT_NODE,
- getContextManager());
- return nullNode;
+ return new UntypedNullConstantNode(getContextManager());
}
}
@@ -279,6 +287,7 @@ public class DefaultNode extends ValueN
/**
* @exception StandardException Thrown on failure
*/
+ @Override
void generateExpression(ExpressionClassBuilder acb, MethodBuilder mb)
throws StandardException
{
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DefaultOptTrace.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DefaultOptTrace.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DefaultOptTrace.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DefaultOptTrace.java Fri Jun 21 07:47:47 2013
@@ -22,15 +22,14 @@
package org.apache.derby.impl.sql.compile;
import java.io.PrintWriter;
-
import org.apache.derby.iapi.services.sanity.SanityManager;
import org.apache.derby.iapi.sql.compile.AccessPath;
import org.apache.derby.iapi.sql.compile.CostEstimate;
import org.apache.derby.iapi.sql.compile.JoinStrategy;
+import org.apache.derby.iapi.sql.compile.OptTrace;
import org.apache.derby.iapi.sql.compile.Optimizable;
import org.apache.derby.iapi.sql.compile.OptimizableList;
import org.apache.derby.iapi.sql.compile.Optimizer;
-import org.apache.derby.iapi.sql.compile.OptTrace;
import org.apache.derby.iapi.sql.compile.RequiredRowOrdering;
import org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor;
import org.apache.derby.iapi.sql.dictionary.IndexRowGenerator;
@@ -54,7 +53,7 @@ public class DefaultOptTrace implemen
//
////////////////////////////////////////////////////////////////////////
- private StringBuffer _buffer;
+ private StringBuilder _buffer;
////////////////////////////////////////////////////////////////////////
//
@@ -65,7 +64,7 @@ public class DefaultOptTrace implemen
/** Make a DefaultOptTrace */
public DefaultOptTrace()
{
- _buffer = new StringBuffer();
+ _buffer = new StringBuilder();
}
////////////////////////////////////////////////////////////////////////
@@ -500,7 +499,7 @@ public class DefaultOptTrace implemen
JBitSet assignedTableMap
)
{
- StringBuffer joinOrderString = new StringBuffer();
+ StringBuilder joinOrderString = new StringBuilder();
joinOrderString.append(prefix);
for (int i = 0; i <= joinPosition; i++)
@@ -563,7 +562,8 @@ public class DefaultOptTrace implemen
/** Append a string to the optimizer trace */
private void appendTraceString( String traceString )
{
- _buffer.append( traceString + "\n" );
+ _buffer.append( traceString );
+ _buffer.append( "\n" );
}
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java Fri Jun 21 07:47:47 2013
@@ -21,52 +21,39 @@
package org.apache.derby.impl.sql.compile;
-import org.apache.derby.iapi.reference.SQLState;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+import org.apache.derby.catalog.UUID;
import org.apache.derby.iapi.error.StandardException;
-
+import org.apache.derby.iapi.reference.ClassName;
+import org.apache.derby.iapi.reference.SQLState;
+import org.apache.derby.iapi.services.classfile.VMOpcode;
+import org.apache.derby.iapi.services.compiler.LocalField;
+import org.apache.derby.iapi.services.compiler.MethodBuilder;
+import org.apache.derby.iapi.services.context.ContextManager;
+import org.apache.derby.iapi.services.io.FormatableBitSet;
+import org.apache.derby.iapi.services.io.FormatableProperties;
+import org.apache.derby.iapi.services.sanity.SanityManager;
+import org.apache.derby.iapi.sql.ResultDescription;
+import org.apache.derby.iapi.sql.StatementType;
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.conn.Authorizer;
-import org.apache.derby.iapi.sql.dictionary.DataDictionary;
-import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
-import org.apache.derby.iapi.sql.dictionary.GenericDescriptorList;
import org.apache.derby.iapi.sql.dictionary.ColumnDescriptor;
import org.apache.derby.iapi.sql.dictionary.ColumnDescriptorList;
import org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor;
+import org.apache.derby.iapi.sql.dictionary.DataDictionary;
+import org.apache.derby.iapi.sql.dictionary.GenericDescriptorList;
+import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
import org.apache.derby.iapi.sql.dictionary.TriggerDescriptor;
-
-import org.apache.derby.iapi.sql.StatementType;
-
-import org.apache.derby.iapi.sql.compile.C_NodeTypes;
-import org.apache.derby.iapi.reference.ClassName;
-
import org.apache.derby.iapi.sql.execute.ConstantAction;
-
-import org.apache.derby.iapi.services.sanity.SanityManager;
-
-import org.apache.derby.iapi.services.compiler.MethodBuilder;
-
import org.apache.derby.iapi.store.access.StaticCompiledOpenConglomInfo;
import org.apache.derby.iapi.store.access.TransactionController;
-
-import org.apache.derby.vti.DeferModification;
-
-import org.apache.derby.catalog.UUID;
-import org.apache.derby.iapi.services.io.FormatableBitSet;
-
-import org.apache.derby.impl.sql.execute.FKInfo;
-
-import java.lang.reflect.Modifier;
-import org.apache.derby.iapi.services.classfile.VMOpcode;
-import org.apache.derby.iapi.services.io.FormatableProperties;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-import org.apache.derby.iapi.sql.compile.NodeFactory;
import org.apache.derby.iapi.util.ReuseFactory;
-import org.apache.derby.iapi.sql.ResultDescription;
-import org.apache.derby.iapi.services.compiler.LocalField;
+import org.apache.derby.vti.DeferModification;
/**
@@ -78,8 +65,7 @@ import org.apache.derby.iapi.services.co
* the named cursor.
*
*/
-
-public class DeleteNode extends DMLModStatementNode
+class DeleteNode extends DMLModStatementNode
{
/* Column name for the RowLocation column in the ResultSet */
private static final String COLUMNNAME = "###RowLocationToDelete";
@@ -94,21 +80,24 @@ public class DeleteNode extends DMLModSt
private StatementNode[] dependentNodes;
/**
- * Initializer for a DeleteNode.
+ * Constructor for a DeleteNode.
*
* @param targetTableName The name of the table to delete from
* @param queryExpression The query expression that will generate
* the rows to delete from the given table
+ * @param cm The context manager
*/
- public void init(Object targetTableName,
- Object queryExpression)
- {
- super.init(queryExpression);
- this.targetTableName = (TableName) targetTableName;
+ DeleteNode(TableName targetTableName,
+ ResultSetNode queryExpression,
+ ContextManager cm) {
+ super(queryExpression, cm);
+ setNodeType(C_NodeTypes.DELETE_NODE);
+ this.targetTableName = targetTableName;
}
- public String statementToString()
+ @Override
+ String statementToString()
{
return "DELETE";
}
@@ -128,18 +117,18 @@ public class DeleteNode extends DMLModSt
*
* @exception StandardException Thrown on error
*/
-
+ @Override
public void bindStatement() throws StandardException
{
// We just need select privilege on the where clause tables
getCompilerContext().pushCurrentPrivType( Authorizer.SELECT_PRIV);
try
{
- FromList fromList = (FromList) getNodeFactory().getNode(
- C_NodeTypes.FROM_LIST,
- getNodeFactory().doJoinOrderOptimization(),
- getContextManager());
- ResultColumn rowLocationColumn = null;
+ FromList fromList = new FromList(
+ getOptimizerFactory().doJoinOrderOptimization(),
+ getContextManager());
+
+ ResultColumn rowLocationColumn = null;
CurrentRowLocationNode rowLocationNode;
TableName cursorTargetTableName = null;
CurrentOfNode currentOfNode = null;
@@ -156,8 +145,7 @@ public class DeleteNode extends DMLModSt
SanityManager.ASSERT(resultSet != null && resultSet instanceof SelectNode,
"Delete must have a select result set");
- SelectNode sel;
- sel = (SelectNode)resultSet;
+ SelectNode sel = (SelectNode)resultSet;
targetTable = (FromTable) sel.fromList.elementAt(0);
if (targetTable instanceof CurrentOfNode)
{
@@ -226,7 +214,8 @@ public class DeleteNode extends DMLModSt
** are needed in the rcl.
*/
- resultColumnList = new ResultColumnList();
+ resultColumnList =
+ new ResultColumnList(getContextManager());
FromBaseTable fbt = getResultColumnList(resultColumnList);
@@ -255,15 +244,12 @@ public class DeleteNode extends DMLModSt
}
/* Generate the RowLocation column */
- rowLocationNode = (CurrentRowLocationNode) getNodeFactory().getNode(
- C_NodeTypes.CURRENT_ROW_LOCATION_NODE,
- getContextManager());
- rowLocationColumn =
- (ResultColumn) getNodeFactory().getNode(
- C_NodeTypes.RESULT_COLUMN,
- COLUMNNAME,
- rowLocationNode,
- getContextManager());
+ rowLocationNode =
+ new CurrentRowLocationNode(getContextManager());
+ rowLocationColumn =
+ new ResultColumn(COLUMNNAME,
+ rowLocationNode,
+ getContextManager());
rowLocationColumn.markGenerated();
/* Append to the ResultColumnList */
@@ -289,7 +275,7 @@ public class DeleteNode extends DMLModSt
rowLocationColumn.bindResultColumnToExpression();
bindConstraints(dataDictionary,
- getNodeFactory(),
+ getOptimizerFactory(),
targetTableDescriptor,
null,
resultColumnList,
@@ -318,7 +304,6 @@ public class DeleteNode extends DMLModSt
null,
sel.getWhereClause());
}
- sel = null; // done with sel
/* Verify that all underlying ResultSets reclaimed their FromList */
if (SanityManager.DEBUG)
@@ -383,6 +368,7 @@ public class DeleteNode extends DMLModSt
}
} // end of bind
+ @Override
int getPrivType()
{
return Authorizer.DELETE_PRIV;
@@ -395,6 +381,7 @@ public class DeleteNode extends DMLModSt
*
* @exception StandardException Thrown on error
*/
+ @Override
public boolean referencesSessionSchema()
throws StandardException
{
@@ -407,7 +394,8 @@ public class DeleteNode extends DMLModSt
*
* @exception StandardException Thrown on failure
*/
- public ConstantAction makeConstantAction() throws StandardException
+ @Override
+ public ConstantAction makeConstantAction() throws StandardException
{
/* Different constant actions for base tables and updatable VTIs */
@@ -500,6 +488,7 @@ public class DeleteNode extends DMLModSt
*
* @exception StandardException Thrown on error
*/
+ @Override
void generate(ActivationClassBuilder acb, MethodBuilder mb)
throws StandardException
{
@@ -654,6 +643,7 @@ public class DeleteNode extends DMLModSt
*
* @return the type of statement
*/
+ @Override
protected final int getStatementType()
{
return StatementType.DELETE;
@@ -743,18 +733,17 @@ public class DeleteNode extends DMLModSt
ValueNode whereClause = null;
- TableName tableName = new TableName();
- tableName.init(schemaName , targetTableName);
+ TableName tableName =
+ new TableName(schemaName , targetTableName, getContextManager());
+
+ FromList fromList = new FromList(getContextManager());
- NodeFactory nodeFactory = getNodeFactory();
- FromList fromList = (FromList) nodeFactory.getNode(C_NodeTypes.FROM_LIST, getContextManager());
- FromTable fromTable = (FromTable) nodeFactory.getNode(
- C_NodeTypes.FROM_BASE_TABLE,
- tableName,
- null,
- ReuseFactory.getInteger(FromBaseTable.DELETE),
- null,
- getContextManager());
+ FromTable fromTable = new FromBaseTable(
+ tableName,
+ null,
+ FromBaseTable.DELETE,
+ null,
+ getContextManager());
//we would like to use references index & table scan instead of
//what optimizer says for the dependent table scan.
@@ -763,21 +752,15 @@ public class DeleteNode extends DMLModSt
((FromBaseTable) fromTable).setTableProperties(targetProperties);
fromList.addFromTable(fromTable);
- SelectNode resultSet = (SelectNode) nodeFactory.getNode(
- C_NodeTypes.SELECT_NODE,
- null,
- fromList, /* FROM list */
- whereClause, /* WHERE clause */
- null, /* GROUP BY list */
- null, /* having clause */
- null, /* windows */
- getContextManager());
-
- return (DeleteNode) nodeFactory.getNode(
- C_NodeTypes.DELETE_NODE,
- tableName,
- resultSet,
- getContextManager());
+ SelectNode rs = new SelectNode(null,
+ fromList, /* FROM list */
+ whereClause, /* WHERE clause */
+ null, /* GROUP BY list */
+ null, /* having clause */
+ null, /* windows */
+ getContextManager());
+
+ return new DeleteNode(tableName, rs, getContextManager());
}
@@ -791,18 +774,17 @@ public class DeleteNode extends DMLModSt
ValueNode whereClause = null;
- TableName tableName = new TableName();
- tableName.init(schemaName , targetTableName);
+ TableName tableName =
+ new TableName(schemaName , targetTableName, getContextManager());
+
+ FromList fromList = new FromList(getContextManager());
- NodeFactory nodeFactory = getNodeFactory();
- FromList fromList = (FromList) nodeFactory.getNode(C_NodeTypes.FROM_LIST, getContextManager());
- FromTable fromTable = (FromTable) nodeFactory.getNode(
- C_NodeTypes.FROM_BASE_TABLE,
- tableName,
- null,
- ReuseFactory.getInteger(FromBaseTable.DELETE),
- null,
- getContextManager());
+ FromTable fromTable = new FromBaseTable(
+ tableName,
+ null,
+ ReuseFactory.getInteger(FromBaseTable.DELETE),
+ null,
+ getContextManager());
//we would like to use references index & table scan instead of
@@ -813,52 +795,38 @@ public class DeleteNode extends DMLModSt
fromList.addFromTable(fromTable);
- SelectNode resultSet = (SelectNode) nodeFactory.getNode(
- C_NodeTypes.SELECT_NODE,
- getSetClause(tableName, cdl),
- fromList, /* FROM list */
- whereClause, /* WHERE clause */
- null, /* GROUP BY list */
- null, /* having clause */
- null, /* windows */
- getContextManager());
-
- return (UpdateNode) nodeFactory.getNode(
- C_NodeTypes.UPDATE_NODE,
- tableName,
- resultSet,
- getContextManager());
+ SelectNode resultSet = new SelectNode(getSetClause(cdl),
+ fromList, /* FROM list */
+ whereClause, /* WHERE clause */
+ null, /* GROUP BY list */
+ null, /* having clause */
+ null, /* windows */
+ getContextManager());
+
+ return new UpdateNode(tableName, resultSet, getContextManager());
}
- private ResultColumnList getSetClause(TableName tabName,
- ColumnDescriptorList cdl)
+ private ResultColumnList getSetClause(ColumnDescriptorList cdl)
throws StandardException
{
ResultColumn resultColumn;
ValueNode valueNode;
- NodeFactory nodeFactory = getNodeFactory();
- ResultColumnList columnList = (ResultColumnList) nodeFactory.getNode(
- C_NodeTypes.RESULT_COLUMN_LIST,
- getContextManager());
+ ResultColumnList columnList = new ResultColumnList(getContextManager());
- valueNode = (ValueNode) nodeFactory.getNode(C_NodeTypes.UNTYPED_NULL_CONSTANT_NODE,
- getContextManager());
+ valueNode = new UntypedNullConstantNode(getContextManager());
for(int index =0 ; index < cdl.size() ; index++)
{
- ColumnDescriptor cd = (ColumnDescriptor) cdl.elementAt(index);
+ ColumnDescriptor cd = cdl.elementAt(index);
//only columns that are nullable need to be set to 'null' for ON
//DELETE SET NULL
if((cd.getType()).isNullable())
{
- resultColumn = (ResultColumn) nodeFactory.getNode(
- C_NodeTypes.RESULT_COLUMN,
- cd,
- valueNode,
- getContextManager());
+ resultColumn =
+ new ResultColumn(cd, valueNode, getContextManager());
columnList.addResultColumn(resultColumn);
}
@@ -866,7 +834,7 @@ public class DeleteNode extends DMLModSt
return columnList;
}
-
+ @Override
public void optimizeStatement() throws StandardException
{
if(cascadeDelete)
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DistinctNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DistinctNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DistinctNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DistinctNode.java Fri Jun 21 07:47:47 2013
@@ -22,32 +22,26 @@
package org.apache.derby.impl.sql.compile;
import java.util.List;
-
+import java.util.Properties;
+import org.apache.derby.iapi.error.StandardException;
+import org.apache.derby.iapi.reference.ClassName;
+import org.apache.derby.iapi.services.classfile.VMOpcode;
+import org.apache.derby.iapi.services.compiler.MethodBuilder;
+import org.apache.derby.iapi.services.context.ContextManager;
+import org.apache.derby.iapi.services.sanity.SanityManager;
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
+import org.apache.derby.iapi.sql.compile.CostEstimate;
import org.apache.derby.iapi.sql.compile.Optimizable;
import org.apache.derby.iapi.sql.compile.OptimizablePredicate;
import org.apache.derby.iapi.sql.compile.OptimizablePredicateList;
import org.apache.derby.iapi.sql.compile.Optimizer;
-import org.apache.derby.iapi.sql.compile.CostEstimate;
import org.apache.derby.iapi.sql.compile.RequiredRowOrdering;
import org.apache.derby.iapi.sql.compile.RowOrdering;
-import org.apache.derby.iapi.sql.compile.C_NodeTypes;
-
-import org.apache.derby.iapi.sql.dictionary.DataDictionary;
import org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor;
-
-import org.apache.derby.iapi.reference.ClassName;
-
-import org.apache.derby.iapi.services.classfile.VMOpcode;
-
-import org.apache.derby.iapi.error.StandardException;
-
-import org.apache.derby.iapi.services.compiler.MethodBuilder;
-
-import org.apache.derby.iapi.services.sanity.SanityManager;
-
+import org.apache.derby.iapi.sql.dictionary.DataDictionary;
/**
- * A DistinctNode represents a result set for a disinct operation
+ * A DistinctNode represents a result set for a distinct operation
* on a select. It has the same description as its input result set.
*
* For the most part, it simply delegates operations to its childResultSet,
@@ -57,26 +51,28 @@ import org.apache.derby.iapi.services.sa
* NOTE: A DistinctNode extends FromTable since it can exist in a FromList.
*
*/
-public class DistinctNode extends SingleChildResultSetNode
+class DistinctNode extends SingleChildResultSetNode
{
boolean inSortedOrder;
/**
- * Initializer for a DistinctNode.
+ * Constructor for a DistinctNode.
*
* @param childResult The child ResultSetNode
* @param inSortedOrder Whether or not the child ResultSetNode returns its
* output in sorted order.
* @param tableProperties Properties list associated with the table
+ * @param cm The context manager
*
* @exception StandardException Thrown on error
*/
- public void init(
- Object childResult,
- Object inSortedOrder,
- Object tableProperties) throws StandardException
+ DistinctNode(ResultSetNode childResult,
+ boolean inSortedOrder,
+ Properties tableProperties,
+ ContextManager cm) throws StandardException
{
- super.init(childResult, tableProperties);
+ super(childResult, tableProperties, cm);
+ setNodeType(C_NodeTypes.DISTINCT_NODE);
if (SanityManager.DEBUG)
{
@@ -92,8 +88,6 @@ public class DistinctNode extends Single
}
}
- ResultColumnList prRCList;
-
/*
We want our own resultColumns, which are virtual columns
pointing to the child result's columns.
@@ -105,22 +99,22 @@ public class DistinctNode extends Single
/* We get a shallow copy of the ResultColumnList and its
* ResultColumns. (Copy maintains ResultColumn.expression for now.)
*/
- prRCList = this.childResult.getResultColumns().copyListAndObjects();
- resultColumns = this.childResult.getResultColumns();
+ final ResultColumnList prRCList =
+ this.childResult.getResultColumns().copyListAndObjects();
+ this.resultColumns = this.childResult.getResultColumns();
this.childResult.setResultColumns(prRCList);
/* Replace ResultColumn.expression with new VirtualColumnNodes
* in the DistinctNode's RCL. (VirtualColumnNodes include
* pointers to source ResultSetNode, this, and source ResultColumn.)
*/
- resultColumns.genVirtualColumnNodes(this, prRCList);
+ this.resultColumns.genVirtualColumnNodes(this, prRCList);
/* Verify that we can perform a DISTINCT on the
* underlying tree.
*/
- resultColumns.verifyAllOrderable();
-
- this.inSortedOrder = ((Boolean) inSortedOrder).booleanValue();
+ this.resultColumns.verifyAllOrderable();
+ this.inSortedOrder = inSortedOrder;
}
/*
@@ -132,17 +126,17 @@ public class DistinctNode extends Single
*
* @exception StandardException Thrown on error
*/
+ @Override
public CostEstimate optimizeIt(Optimizer optimizer,
OptimizablePredicateList predList,
CostEstimate outerCost,
RowOrdering rowOrdering)
throws StandardException
{
- CostEstimate childCost =
- ((Optimizable) childResult).optimizeIt(optimizer,
- predList,
- outerCost,
- rowOrdering);
+ ((Optimizable) childResult).optimizeIt(optimizer,
+ predList,
+ outerCost,
+ rowOrdering);
return super.optimizeIt(optimizer, predList, outerCost, rowOrdering);
}
@@ -152,6 +146,7 @@ public class DistinctNode extends Single
*
* @exception StandardException Thrown on error
*/
+ @Override
public CostEstimate estimateCost(OptimizablePredicateList predList,
ConglomerateDescriptor cd,
CostEstimate outerCost,
@@ -186,7 +181,7 @@ public class DistinctNode extends Single
*
* @exception StandardException Thrown on error
*/
-
+ @Override
public boolean pushOptPredicate(OptimizablePredicate optimizablePredicate)
throws StandardException
{
@@ -207,8 +202,8 @@ public class DistinctNode extends Single
*
* @exception StandardException Thrown on error
*/
-
- public ResultSetNode optimize(DataDictionary dataDictionary,
+ @Override
+ ResultSetNode optimize(DataDictionary dataDictionary,
PredicateList predicates,
double outerRows)
throws StandardException
@@ -216,14 +211,12 @@ public class DistinctNode extends Single
/* We need to implement this method since a PRN can appear above a
* SelectNode in a query tree.
*/
- childResult = (ResultSetNode) childResult.optimize(
- dataDictionary,
- predicates,
- outerRows);
- Optimizer optimizer = getOptimizer(
- (FromList) getNodeFactory().getNode(
- C_NodeTypes.FROM_LIST,
- getNodeFactory().doJoinOrderOptimization(),
+ childResult = childResult.optimize(dataDictionary,
+ predicates,
+ outerRows);
+ Optimizer opt = getOptimizer(
+ new FromList(
+ getOptimizerFactory().doJoinOrderOptimization(),
this,
getContextManager()),
predicates,
@@ -232,7 +225,7 @@ public class DistinctNode extends Single
// RESOLVE: NEED TO FACTOR IN COST OF SORTING AND FIGURE OUT HOW
// MANY ROWS HAVE BEEN ELIMINATED.
- costEstimate = optimizer.newCostEstimate();
+ costEstimate = opt.newCostEstimate();
costEstimate.setCost(childResult.getCostEstimate().getEstimatedCost(),
childResult.getCostEstimate().rowCount(),
@@ -254,7 +247,10 @@ public class DistinctNode extends Single
* @return Whether the underlying ResultSet tree
* is ordered on the specified column.
*/
- boolean isOrderedOn(ColumnReference[] crs, boolean permuteOrdering, List fbtHolder)
+ @Override
+ boolean isOrderedOn(ColumnReference[] crs,
+ boolean permuteOrdering,
+ List<FromBaseTable> fbtHolder)
{
/* RESOLVE - DistinctNodes are ordered on their RCLs.
* Walk RCL to see if cr is 1st non-constant column in the
@@ -265,10 +261,11 @@ public class DistinctNode extends Single
/**
* generate the distinct result set operating over the source
- * resultset.
+ * result set.
*
* @exception StandardException Thrown on error
*/
+ @Override
void generate(ActivationClassBuilder acb, MethodBuilder mb)
throws StandardException
{
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropAliasNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropAliasNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropAliasNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropAliasNode.java Fri Jun 21 07:47:47 2013
@@ -21,49 +21,42 @@
package org.apache.derby.impl.sql.compile;
-import org.apache.derby.iapi.sql.compile.C_NodeTypes;
-
-import org.apache.derby.iapi.services.context.ContextManager;
-
-import org.apache.derby.iapi.sql.execute.ConstantAction;
-
-import org.apache.derby.iapi.reference.SQLState;
-
+import org.apache.derby.catalog.AliasInfo;
import org.apache.derby.iapi.error.StandardException;
-
-import org.apache.derby.iapi.services.monitor.Monitor;
+import org.apache.derby.iapi.reference.SQLState;
+import org.apache.derby.iapi.services.context.ContextManager;
import org.apache.derby.iapi.services.sanity.SanityManager;
-
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.dictionary.AliasDescriptor;
import org.apache.derby.iapi.sql.dictionary.DataDictionary;
import org.apache.derby.iapi.sql.dictionary.SchemaDescriptor;
-
-import org.apache.derby.catalog.AliasInfo;
+import org.apache.derby.iapi.sql.execute.ConstantAction;
/**
* A DropAliasNode represents a DROP ALIAS statement.
*
*/
-public class DropAliasNode extends DDLStatementNode
+class DropAliasNode extends DDLStatementNode
{
private char aliasType;
private char nameSpace;
/**
- * Initializer for a DropAliasNode
+ * Constructor for a DropAliasNode
*
* @param dropAliasName The name of the method alias being dropped
* @param aliasType Alias type
+ * @param cm Context manager
*
* @exception StandardException
*/
- public void init(Object dropAliasName, Object aliasType)
+ DropAliasNode(TableName dropAliasName, char aliasType, ContextManager cm)
throws StandardException
{
- TableName dropItem = (TableName) dropAliasName;
- initAndCheck(dropItem);
- this.aliasType = ((Character) aliasType).charValue();
+ super(dropAliasName, cm);
+ setNodeType(C_NodeTypes.DROP_ALIAS_NODE);
+ this.aliasType = aliasType;
switch (this.aliasType)
{
@@ -97,7 +90,7 @@ public class DropAliasNode extends DDLSt
public char getAliasType() { return aliasType; }
- public String statementToString()
+ String statementToString()
{
return "DROP ".concat(aliasTypeName(aliasType));
}
@@ -108,6 +101,7 @@ public class DropAliasNode extends DDLSt
*
* @exception StandardException Thrown on error
*/
+ @Override
public void bindStatement() throws StandardException
{
DataDictionary dataDictionary = getDataDictionary();
@@ -143,7 +137,8 @@ public class DropAliasNode extends DDLSt
*
* @exception StandardException Thrown on failure
*/
- public ConstantAction makeConstantAction() throws StandardException
+ @Override
+ public ConstantAction makeConstantAction() throws StandardException
{
return getGenericConstantActionFactory().getDropAliasConstantAction(getSchemaDescriptor(), getRelativeName(), nameSpace);
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropIndexNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropIndexNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropIndexNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropIndexNode.java Fri Jun 21 07:47:47 2013
@@ -23,6 +23,8 @@ package org.apache.derby.impl.sql.compil
import org.apache.derby.iapi.error.StandardException;
import org.apache.derby.iapi.reference.SQLState;
+import org.apache.derby.iapi.services.context.ContextManager;
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.compile.CompilerContext;
import org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor;
import org.apache.derby.iapi.sql.dictionary.ConstraintDescriptor;
@@ -37,12 +39,17 @@ import org.apache.derby.iapi.sql.execute
*
*/
-public class DropIndexNode extends DDLStatementNode
+class DropIndexNode extends DDLStatementNode
{
private ConglomerateDescriptor cd;
private TableDescriptor td;
- public String statementToString()
+ DropIndexNode(TableName index, ContextManager cm) {
+ super(index, cm);
+ setNodeType(C_NodeTypes.DROP_INDEX_NODE);
+ }
+
+ String statementToString()
{
return "DROP INDEX";
}
@@ -54,6 +61,7 @@ public class DropIndexNode extends DDLSt
*
* @exception StandardException Thrown on error
*/
+ @Override
public void bindStatement() throws StandardException
{
CompilerContext cc = getCompilerContext();
@@ -105,7 +113,8 @@ public class DropIndexNode extends DDLSt
*
* @exception StandardException Thrown on failure
*/
- public ConstantAction makeConstantAction() throws StandardException
+ @Override
+ public ConstantAction makeConstantAction() throws StandardException
{
return getGenericConstantActionFactory().getDropIndexConstantAction( getFullName(),
getRelativeName(),
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropRoleNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropRoleNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropRoleNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropRoleNode.java Fri Jun 21 07:47:47 2013
@@ -21,37 +21,39 @@
package org.apache.derby.impl.sql.compile;
+import org.apache.derby.iapi.error.StandardException;
+import org.apache.derby.iapi.services.context.ContextManager;
+import org.apache.derby.iapi.services.sanity.SanityManager;
import org.apache.derby.iapi.sql.compile.CompilerContext;
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.conn.Authorizer;
import org.apache.derby.iapi.sql.execute.ConstantAction;
-import org.apache.derby.iapi.error.StandardException;
-
-import org.apache.derby.iapi.services.sanity.SanityManager;
-
/**
* A DropRoleNode is the root of a QueryTree that represents
* a DROP ROLE statement.
*
*/
-public class DropRoleNode extends DDLStatementNode
+class DropRoleNode extends DDLStatementNode
{
private String roleName;
/**
- * Initializer for a DropRoleNode
+ * Constructor for a DropRoleNode
*
* @param roleName The name of the object being dropped
+ * @param cm Context manager
*
*/
- public void init(Object roleName)
- throws StandardException
+ DropRoleNode(String roleName, ContextManager cm) throws StandardException
{
- initAndCheck(null);
- this.roleName = (String)roleName;
+ super(null, cm);
+ this.roleName = roleName;
+ setNodeType(C_NodeTypes.DROP_ROLE_NODE);
}
+ @Override
public void bindStatement() throws StandardException
{
CompilerContext cc = getCompilerContext();
@@ -66,7 +68,7 @@ public class DropRoleNode extends DDLSta
*
* @return This object as a String
*/
-
+ @Override
public String toString()
{
if (SanityManager.DEBUG) {
@@ -77,6 +79,7 @@ public class DropRoleNode extends DDLSta
}
}
+ @Override
public String statementToString()
{
return "DROP ROLE";
@@ -89,6 +92,7 @@ public class DropRoleNode extends DDLSta
*
* @exception StandardException Thrown on failure
*/
+ @Override
public ConstantAction makeConstantAction() throws StandardException
{
return getGenericConstantActionFactory().
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropSchemaNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropSchemaNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropSchemaNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropSchemaNode.java Fri Jun 21 07:47:47 2013
@@ -21,43 +21,44 @@
package org.apache.derby.impl.sql.compile;
-import org.apache.derby.iapi.sql.compile.CompilerContext;
+import org.apache.derby.iapi.error.StandardException;
+import org.apache.derby.iapi.reference.SQLState;
+import org.apache.derby.iapi.services.context.ContextManager;
+import org.apache.derby.iapi.services.sanity.SanityManager;
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.conn.Authorizer;
import org.apache.derby.iapi.sql.conn.LanguageConnectionContext;
import org.apache.derby.iapi.sql.conn.StatementContext;
import org.apache.derby.iapi.sql.execute.ConstantAction;
-import org.apache.derby.iapi.error.StandardException;
-
-import org.apache.derby.iapi.services.sanity.SanityManager;
-import org.apache.derby.iapi.reference.SQLState;
-
/**
* A DropSchemaNode is the root of a QueryTree that represents
* a DROP SCHEMA statement.
*
*/
-public class DropSchemaNode extends DDLStatementNode
+class DropSchemaNode extends DDLStatementNode
{
private int dropBehavior;
private String schemaName;
/**
- * Initializer for a DropSchemaNode
+ * Constructor for a DropSchemaNode
*
* @param schemaName The name of the object being dropped
* @param dropBehavior Drop behavior (RESTRICT | CASCADE)
+ * @param cm Context Manager
*
*/
- public void init(Object schemaName, Object dropBehavior)
- throws StandardException
+ DropSchemaNode(String schemaName, int dropBehavior, ContextManager cm)
{
- initAndCheck(null);
- this.schemaName = (String) schemaName;
- this.dropBehavior = ((Integer) dropBehavior).intValue();
+ super(null, cm);
+ setNodeType(C_NodeTypes.DROP_SCHEMA_NODE);
+ this.schemaName = schemaName;
+ this.dropBehavior = dropBehavior;
}
+ @Override
public void bindStatement() throws StandardException
{
/*
@@ -93,7 +94,7 @@ public class DropSchemaNode extends DDLS
*
* @return This object as a String
*/
-
+ @Override
public String toString()
{
if (SanityManager.DEBUG)
@@ -107,7 +108,7 @@ public class DropSchemaNode extends DDLS
}
}
- public String statementToString()
+ String statementToString()
{
return "DROP SCHEMA";
}
@@ -120,7 +121,8 @@ public class DropSchemaNode extends DDLS
*
* @exception StandardException Thrown on failure
*/
- public ConstantAction makeConstantAction() throws StandardException
+ @Override
+ public ConstantAction makeConstantAction() throws StandardException
{
return getGenericConstantActionFactory().getDropSchemaConstantAction(schemaName);
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropSequenceNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropSequenceNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropSequenceNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropSequenceNode.java Fri Jun 21 07:47:47 2013
@@ -24,6 +24,8 @@ package org.apache.derby.impl.sql.compil
import org.apache.derby.iapi.sql.execute.ConstantAction;
import org.apache.derby.iapi.reference.SQLState;
import org.apache.derby.iapi.error.StandardException;
+import org.apache.derby.iapi.services.context.ContextManager;
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.dictionary.DataDictionary;
import org.apache.derby.iapi.sql.dictionary.SchemaDescriptor;
import org.apache.derby.iapi.sql.dictionary.SequenceDescriptor;
@@ -32,19 +34,20 @@ import org.apache.derby.iapi.sql.diction
* A DropSequenceNode represents a DROP SEQUENCE statement.
*/
-public class DropSequenceNode extends DDLStatementNode {
+class DropSequenceNode extends DDLStatementNode {
private TableName dropItem;
/**
- * Initializer for a DropSequenceNode
+ * Constructor for a DropSequenceNode
*
* @param dropSequenceName The name of the sequence being dropped
+ * @param cm The context manager
* @throws StandardException
*/
- public void init(Object dropSequenceName)
- throws StandardException {
- dropItem = (TableName) dropSequenceName;
- initAndCheck(dropItem);
+ DropSequenceNode(TableName dropSequenceName, ContextManager cm) {
+ super(dropSequenceName, cm);
+ setNodeType(C_NodeTypes.DROP_SEQUENCE_NODE);
+ dropItem = dropSequenceName;
}
public String statementToString() {
@@ -56,6 +59,7 @@ public class DropSequenceNode extends DD
*
* @throws StandardException Thrown on error
*/
+ @Override
public void bindStatement() throws StandardException {
DataDictionary dataDictionary = getDataDictionary();
String sequenceName = getRelativeName();
@@ -83,6 +87,7 @@ public class DropSequenceNode extends DD
*
* @throws StandardException Thrown on failure
*/
+ @Override
public ConstantAction makeConstantAction() throws StandardException {
return getGenericConstantActionFactory().getDropSequenceConstantAction(getSchemaDescriptor(), getRelativeName());
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropTableNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropTableNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropTableNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropTableNode.java Fri Jun 21 07:47:47 2013
@@ -22,7 +22,9 @@
package org.apache.derby.impl.sql.compile;
import org.apache.derby.iapi.error.StandardException;
+import org.apache.derby.iapi.services.context.ContextManager;
import org.apache.derby.iapi.services.sanity.SanityManager;
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.compile.CompilerContext;
import org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor;
import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
@@ -34,25 +36,26 @@ import org.apache.derby.iapi.sql.execute
*
*/
-public class DropTableNode extends DDLStatementNode
+class DropTableNode extends DDLStatementNode
{
private long conglomerateNumber;
private int dropBehavior;
private TableDescriptor td;
/**
- * Intializer for a DropTableNode
+ * Constructor for a DropTableNode
*
* @param dropObjectName The name of the object being dropped
* @param dropBehavior Drop behavior (RESTRICT | CASCADE)
+ * @param cm The context manager
*
*/
-
- public void init(Object dropObjectName, Object dropBehavior)
+ DropTableNode(TableName dropObjectName, int dropBehavior, ContextManager cm)
throws StandardException
{
- initAndCheck(dropObjectName);
- this.dropBehavior = ((Integer) dropBehavior).intValue();
+ super(dropObjectName, cm);
+ this.dropBehavior = dropBehavior;
+ setNodeType(C_NodeTypes.DROP_TABLE_NODE);
}
/**
@@ -61,7 +64,7 @@ public class DropTableNode extends DDLSt
*
* @return This object as a String
*/
-
+ @Override
public String toString()
{
if (SanityManager.DEBUG)
@@ -77,7 +80,7 @@ public class DropTableNode extends DDLSt
}
}
- public String statementToString()
+ String statementToString()
{
return "DROP TABLE";
}
@@ -89,7 +92,7 @@ public class DropTableNode extends DDLSt
*
* @exception StandardException Thrown on error
*/
-
+ @Override
public void bindStatement() throws StandardException
{
CompilerContext cc = getCompilerContext();
@@ -113,6 +116,7 @@ public class DropTableNode extends DDLSt
*
* @exception StandardException Thrown on error
*/
+ @Override
public boolean referencesSessionSchema()
throws StandardException
{
@@ -128,7 +132,8 @@ public class DropTableNode extends DDLSt
*
* @exception StandardException Thrown on failure
*/
- public ConstantAction makeConstantAction() throws StandardException
+ @Override
+ public ConstantAction makeConstantAction() throws StandardException
{
return getGenericConstantActionFactory().getDropTableConstantAction(
getFullName(),
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropTriggerNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropTriggerNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropTriggerNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropTriggerNode.java Fri Jun 21 07:47:47 2013
@@ -21,27 +21,32 @@
package org.apache.derby.impl.sql.compile;
+import org.apache.derby.iapi.error.StandardException;
+import org.apache.derby.iapi.reference.SQLState;
+import org.apache.derby.iapi.services.context.ContextManager;
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.compile.CompilerContext;
import org.apache.derby.iapi.sql.dictionary.DataDictionary;
import org.apache.derby.iapi.sql.dictionary.SchemaDescriptor;
import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
import org.apache.derby.iapi.sql.dictionary.TriggerDescriptor;
-import org.apache.derby.iapi.reference.SQLState;
import org.apache.derby.iapi.sql.execute.ConstantAction;
-import org.apache.derby.iapi.error.StandardException;
-import org.apache.derby.iapi.services.context.ContextManager;
-import org.apache.derby.iapi.services.sanity.SanityManager;
/**
* A DropTriggerNode is the root of a QueryTree that represents a DROP TRIGGER
* statement.
*
*/
-public class DropTriggerNode extends DDLStatementNode
+class DropTriggerNode extends DDLStatementNode
{
private TableDescriptor td;
- public String statementToString()
+ DropTriggerNode(TableName trigger, ContextManager cm) {
+ super(trigger, cm);
+ setNodeType(C_NodeTypes.DROP_TRIGGER_NODE);
+ }
+
+ String statementToString()
{
return "DROP TRIGGER";
}
@@ -53,6 +58,7 @@ public class DropTriggerNode extends DDL
*
* @exception StandardException Thrown on error
*/
+ @Override
public void bindStatement() throws StandardException
{
CompilerContext cc = getCompilerContext();
@@ -83,7 +89,8 @@ public class DropTriggerNode extends DDL
*
* @exception StandardException Thrown on failure
*/
- public ConstantAction makeConstantAction() throws StandardException
+ @Override
+ public ConstantAction makeConstantAction() throws StandardException
{
return getGenericConstantActionFactory().getDropTriggerConstantAction(
getSchemaDescriptor(),
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropViewNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropViewNode.java?rev=1495305&r1=1495304&r2=1495305&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropViewNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DropViewNode.java Fri Jun 21 07:47:47 2013
@@ -21,21 +21,13 @@
package org.apache.derby.impl.sql.compile;
-import org.apache.derby.iapi.services.context.ContextManager;
-
-import org.apache.derby.iapi.sql.execute.ConstantAction;
-
-import org.apache.derby.impl.sql.compile.ActivationClassBuilder;
-import org.apache.derby.impl.sql.execute.BaseActivation;
-import org.apache.derby.iapi.sql.ResultSet;
-
import org.apache.derby.iapi.error.StandardException;
+import org.apache.derby.iapi.services.context.ContextManager;
+import org.apache.derby.iapi.sql.compile.C_NodeTypes;
import org.apache.derby.iapi.sql.compile.CompilerContext;
import org.apache.derby.iapi.sql.dictionary.DataDictionary;
-import org.apache.derby.iapi.sql.dictionary.SchemaDescriptor;
import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
-
-import org.apache.derby.iapi.services.sanity.SanityManager;
+import org.apache.derby.iapi.sql.execute.ConstantAction;
/**
* A DropViewNode is the root of a QueryTree that represents a DROP VIEW
@@ -43,23 +35,23 @@ import org.apache.derby.iapi.services.sa
*
*/
-public class DropViewNode extends DDLStatementNode
+class DropViewNode extends DDLStatementNode
{
/**
- * Initializer for a DropViewNode
+ * Constructor for a DropViewNode
*
- * @param dropObjectName The name of the object being dropped
+ * @param view The name of the view being dropped
+ * @param cm The context manager
*
*/
-
- public void init(Object dropObjectName)
- throws StandardException
+ DropViewNode(TableName view, ContextManager cm)
{
- initAndCheck(dropObjectName);
+ super(view, cm);
+ setNodeType(C_NodeTypes.DROP_VIEW_NODE);
}
- public String statementToString()
+ String statementToString()
{
return "DROP VIEW";
}
@@ -70,7 +62,7 @@ public class DropViewNode extends DDLSta
*
* @exception StandardException Thrown on error
*/
-
+ @Override
public void bindStatement() throws StandardException
{
DataDictionary dd = getDataDictionary();
@@ -100,7 +92,8 @@ public class DropViewNode extends DDLSta
*
* @exception StandardException Thrown on failure
*/
- public ConstantAction makeConstantAction() throws StandardException
+ @Override
+ public ConstantAction makeConstantAction() throws StandardException
{
return getGenericConstantActionFactory().getDropViewConstantAction( getFullName(),
getRelativeName(),