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/28 06:32:09 UTC

svn commit: r1497644 [1/4] - in /db/derby/code/trunk/java/engine/org/apache/derby: iapi/services/loader/ iapi/sql/compile/ impl/sql/compile/

Author: dag
Date: Fri Jun 28 04:32:08 2013
New Revision: 1497644

URL: http://svn.apache.org/r1497644
Log:
DERBY-673: Get rid of the NodeFactory

Patch derby-673-typesafe-lists-2, which introduces generics to the
lists based on QueryTreeNodeVector. I also let the latter implement
the Iterable interface, which opens up for using Java 6 "foreach"
syntax in many cases. The patch makes use of this. Together, these
changes enables many casts to be eliminated and code clarification in
the compiler implementation.

It also removes most -Xlint warnings from impl/sql/compile classes, so
it should be ready to run with full lint.

Diffstat summary:
63 files changed, 854 insertions(+), 1236 deletions(-)

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/loader/ClassInspector.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/compile/CompilerContext.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/AggregateNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/BetweenOperatorNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/BinaryRelationalOperatorNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CastNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CoalesceFunctionNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ConditionalNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTableNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateViewNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CursorNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DMLModStatementNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DefaultNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ExpressionClassBuilder.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FKConstraintDefinitionNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromTable.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/HalfOuterJoinNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/HasNodeVisitor.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/InListOperatorNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/IndexToBaseRowNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/InsertNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/JoinNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/NonStaticMethodCallNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/NormalizeResultSetNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/OrderByList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/OrderedColumnList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/PredicateList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ProjectRestrictNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/QueryTreeNodeVector.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ReplaceAggregatesWithCRVisitor.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ReplaceWindowFuncCallsWithCRVisitor.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ResultColumn.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ResultColumnList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ResultSetNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RevokeRoleNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RowOrderingImpl.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RowResultSetNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SelectNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SetOperatorNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/StaticMethodCallNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SubqueryList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SubqueryNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/SubstituteExpressionVisitor.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/TableElementList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/TypeCompilerFactoryImpl.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/UpdateNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/UserAggregateDefinition.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/VTIDeferModPolicy.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ValueNodeList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/WindowDefinitionNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/WindowFunctionNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/WindowList.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/WindowResultSetNode.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/loader/ClassInspector.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/loader/ClassInspector.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/loader/ClassInspector.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/loader/ClassInspector.java Fri Jun 28 04:32:08 2013
@@ -554,7 +554,8 @@ public class ClassInspector
      * the actual types of the interface type variables.
      * May return null or an array of nulls if type resolution fails.
 	 */
-    public Class[] getGenericParameterTypes( Class parameterizedType, Class implementation )
+    public Class<?>[] getGenericParameterTypes(
+            Class parameterizedType, Class implementation )
         throws StandardException
 	{
         // construct the inheritance chain stretching from the parameterized
@@ -577,7 +578,7 @@ public class ClassInspector
             return null;
         }
 
-        return parameterTypes.toArray(new Class[parameterTypes.size()]);
+        return parameterTypes.toArray(new Class<?>[parameterTypes.size()]);
     }
 
 	/**

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/compile/CompilerContext.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/compile/CompilerContext.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/compile/CompilerContext.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/compile/CompilerContext.java Fri Jun 28 04:32:08 2013
@@ -310,7 +310,7 @@ public interface CompilerContext extends
 	 * @exception StandardException thrown on failure.
 	 *
 	 */
-	public	void createDependency(Dependent d, Provider p) throws StandardException;
+    void createDependency(Dependent d, Provider p) throws StandardException;
 
 	/**
 	 * Add an object to the pool that is created at compile time
@@ -346,25 +346,25 @@ public interface CompilerContext extends
 	 *
 	 * @param inUse	 The new inUse state for the compiler context.
 	 */
-	public void setInUse(boolean inUse);
+    void setInUse(boolean inUse);
 
 	/**
 	 * Return the in use state for the compiler context.
 	 *
 	 * @return boolean	The in use state for the compiler context.
 	 */
-	public boolean getInUse();
+    boolean getInUse();
 
 	/**
 	 * Mark this CompilerContext as the first on the stack, so we can avoid
 	 * continually popping and pushing a CompilerContext.
 	 */
-	public void firstOnStack();
+    void firstOnStack();
 
 	/**
 	 * Is this the first CompilerContext on the stack?
 	 */
-	public boolean isFirstOnStack();
+    boolean isFirstOnStack();
 
 	/**
 	 * Sets which kind of query fragments are NOT allowed. Basically,
@@ -375,7 +375,7 @@ public interface CompilerContext extends
 	 *						see the reliability bitmasks above
 	 *
 	 */
-	public void	setReliability(int reliability);
+    void    setReliability(int reliability);
 
 	/**
 	 * Return the reliability requirements of this clause. See setReliability()
@@ -383,7 +383,7 @@ public interface CompilerContext extends
 	 *
 	 * @return a bitmask of which types of query fragments are to be forbidden
 	 */
-	public int getReliability();
+    int getReliability();
 
 	/**
 	 * Get the compilation schema descriptor for this compilation context.
@@ -392,7 +392,7 @@ public interface CompilerContext extends
 	 * 
 	 * @return the compilation schema descirptor
 	 */
-	public SchemaDescriptor getCompilationSchema();
+    SchemaDescriptor getCompilationSchema();
 
 	/**
 	 * Set the compilation schema descriptor for this compilation context.
@@ -401,7 +401,7 @@ public interface CompilerContext extends
 	 * 
 	 * @return the previous compilation schema descirptor
 	 */
-	public SchemaDescriptor setCompilationSchema(SchemaDescriptor newDefault);
+    SchemaDescriptor setCompilationSchema(SchemaDescriptor newDefault);
 
 	/**
 	 * Push a default schema to use when compiling.
@@ -414,13 +414,13 @@ public interface CompilerContext extends
 	 * </p>
 	 * @param sd schema to use
 	 */
-	public void pushCompilationSchema(SchemaDescriptor sd);
+    void pushCompilationSchema(SchemaDescriptor sd);
 
 
 	/**
 	 * Pop the default schema to use when compiling.
 	 */
-	public void popCompilationSchema();
+    void popCompilationSchema();
 
 	/**
 	 * Get a StoreCostController for the given conglomerate.
@@ -432,7 +432,7 @@ public interface CompilerContext extends
 	 *
 	 * @exception StandardException		Thrown on error
 	 */
-	public StoreCostController getStoreCostController(long conglomerateNumber)
+    StoreCostController getStoreCostController(long conglomerateNumber)
 			throws StandardException;
 
 	/**
@@ -440,78 +440,78 @@ public interface CompilerContext extends
 	 *
 	 * @exception StandardException		Thrown on error
 	 */
-	public SortCostController getSortCostController() throws StandardException;
+    SortCostController getSortCostController() throws StandardException;
 
 	/**
 	 * Set the parameter list.
 	 *
 	 * @param parameterList	The parameter list.
 	 */
-    public void setParameterList(List<ParameterNode> parameterList);
+    void setParameterList(List<ParameterNode> parameterList);
 
 	/**
 	 * Get the parameter list.
 	 *
 	 * @return	The parameter list.
 	 */
-    public List<ParameterNode> getParameterList();
+    List<ParameterNode> getParameterList();
 
 	/**
 	 * If callable statement uses ? = form
 	 */
-	public void setReturnParameterFlag();
+    void setReturnParameterFlag();
 
 	/**
 	 * Is the callable statement uses ? for return parameter.
 	 *
 	 * @return	true if ? = call else false
 	 */
-	public boolean getReturnParameterFlag();
+    boolean getReturnParameterFlag();
 
 	/**
 	 * Get the cursor info stored in the context.
 	 *
 	 * @return the cursor info
 	 */
-	public Object getCursorInfo();
+    Object getCursorInfo();
 	
 	/**
 	 * Set params
 	 *
 	 * @param cursorInfo the cursor info
 	 */
-	public void setCursorInfo(Object cursorInfo);
+    void setCursorInfo(Object cursorInfo);
 
 	/**
 	 * Set the isolation level for the scans in this query.
 	 *
 	 * @param isolationLevel	The isolation level to use.
 	 */
-	public void setScanIsolationLevel(int isolationLevel);
+    void setScanIsolationLevel(int isolationLevel);
 
 	/**
 	 * Get the isolation level for the scans in this query.
 	 *
 	 * @return	The isolation level for the scans in this query.
 	 */
-	public int getScanIsolationLevel();
+    int getScanIsolationLevel();
 
 	/**
 	 * Get the next equivalence class for equijoin clauses.
 	 *
 	 * @return The next equivalence class for equijoin clauses.
 	 */
-	public int getNextEquivalenceClass();
+    int getNextEquivalenceClass();
 
 	/**
 		Add a compile time warning.
 	*/
-	public void addWarning(SQLWarning warning);
+    void addWarning(SQLWarning warning);
 
 	/**
 		Get the chain of compile time warnings.
 	*/
-	public SQLWarning getWarnings();
+    SQLWarning getWarnings();
 
 	/**
 	 * Sets the current privilege type context and pushes the previous on onto a stack.
@@ -522,23 +522,23 @@ public interface CompilerContext extends
 	 * @param privType One of the privilege types in 
 	 *						org.apache.derby.iapi.sql.conn.Authorizer.
 	 */
-	public void pushCurrentPrivType( int privType);
+    void pushCurrentPrivType( int privType);
 	
-	public void popCurrentPrivType();
+    void popCurrentPrivType();
     
 	/**
 	 * Add a column privilege to the list of used column privileges.
 	 *
 	 * @param column
 	 */
-	public void addRequiredColumnPriv( ColumnDescriptor column);
+    void addRequiredColumnPriv( ColumnDescriptor column);
 
 	/**
 	 * Add a table or view privilege to the list of used table privileges.
 	 *
 	 * @param table
 	 */
-	public void addRequiredTablePriv( TableDescriptor table);
+    void addRequiredTablePriv( TableDescriptor table);
 
 	/**
 	 * Add a schema privilege to the list of used privileges.
@@ -547,42 +547,42 @@ public interface CompilerContext extends
 	 * @param aid		Requested authorizationId for new schema
 	 * @param privType	CREATE_SCHEMA_PRIV, MODIFY_SCHEMA_PRIV or DROP_SCHEMA_PRIV
 	 */
-	public void addRequiredSchemaPriv(String schema, String aid, int privType);
+    void addRequiredSchemaPriv(String schema, String aid, int privType);
 
 	/**
 	 * Add a routine execute privilege to the list of used routine privileges.
 	 *
 	 * @param routine
 	 */
-	public void addRequiredRoutinePriv( AliasDescriptor routine);
+    void addRequiredRoutinePriv( AliasDescriptor routine);
 
 	/**
 	 * Add a usage privilege to the list of required privileges.
 	 *
 	 * @param usableObject
 	 */
-	public void addRequiredUsagePriv( PrivilegedSQLObject usableObject );
+    void addRequiredUsagePriv( PrivilegedSQLObject usableObject );
 
 	/**
 	 * Add a required role privilege to the list of privileges.
 	 *
 	 * @see CompilerContext#addRequiredRolePriv
 	 */
-	public void addRequiredRolePriv(String roleName, int privType);
+    void addRequiredRolePriv(String roleName, int privType);
 
 	/**
 	 * @return The list of required privileges.
 	 */
-	public List<StatementPermission>getRequiredPermissionsList();
+    List<StatementPermission>getRequiredPermissionsList();
     
 	/**
 	 * Add a sequence descriptor to the list of referenced sequences.
 	 */
-	public void addReferencedSequence( SequenceDescriptor sd );
+    void addReferencedSequence( SequenceDescriptor sd );
 
 	/**
 	 * Report whether the given sequence has been referenced already.
 	 */
-    public boolean isReferenced( SequenceDescriptor sd );
+    boolean isReferenced( SequenceDescriptor sd );
 
 }

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/AggregateNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/AggregateNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/AggregateNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/AggregateNode.java Fri Jun 28 04:32:08 2013
@@ -50,7 +50,7 @@ class AggregateNode extends UnaryOperato
     private TableName           userAggregateName;
 	private StringBuffer			aggregatorClassName;
 	private String					aggregateDefinitionClassName;
-	private Class					aggregateDefinitionClass;
+    private Class<?>                aggregateDefinitionClass;
 	private ClassInspector			classInspector;
 	private String					aggregateName;
 
@@ -126,7 +126,7 @@ class AggregateNode extends UnaryOperato
      */
     AggregateNode(
             ValueNode operand,
-            Class uadClass,
+            Class<?> uadClass,
             boolean distinct,
             String aggregateName,
             ContextManager cm) throws StandardException {
@@ -492,7 +492,7 @@ class AggregateNode extends UnaryOperato
 	{
         if ( uad == null )
         {
-            Class theClass = aggregateDefinitionClass;
+            Class<?> theClass = aggregateDefinitionClass;
 
             // get the class
             if (theClass == null)

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/BetweenOperatorNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/BetweenOperatorNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/BetweenOperatorNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/BetweenOperatorNode.java Fri Jun 28 04:32:08 2013
@@ -114,7 +114,7 @@ class BetweenOperatorNode extends Binary
         leftBCO = new BinaryRelationalOperatorNode(
 									C_NodeTypes.BINARY_LESS_THAN_OPERATOR_NODE,
 									leftOperand, 
-                                    (ValueNode)rightOperandList.elementAt(0),
+                                    rightOperandList.elementAt(0),
                                     false,
 									cm);
 		/* Set type info for the operator node */
@@ -130,7 +130,7 @@ class BetweenOperatorNode extends Binary
         rightBCO = new BinaryRelationalOperatorNode(
 								C_NodeTypes.BINARY_GREATER_THAN_OPERATOR_NODE,
 								leftClone,
-                                (ValueNode)rightOperandList.elementAt(1),
+                                rightOperandList.elementAt(1),
                                 false,
 								cm);
 		/* Set type info for the operator node */
@@ -209,7 +209,7 @@ class BetweenOperatorNode extends Binary
             new BinaryRelationalOperatorNode(
 						C_NodeTypes.BINARY_LESS_EQUALS_OPERATOR_NODE,
 						leftClone1, 
-                        (ValueNode)rightOperandList.elementAt(1),
+                        rightOperandList.elementAt(1),
                         false,
 						cm);
 
@@ -225,7 +225,7 @@ class BetweenOperatorNode extends Binary
             new BinaryRelationalOperatorNode(
 					C_NodeTypes.BINARY_GREATER_EQUALS_OPERATOR_NODE,
 					leftOperand, 
-                    (ValueNode)rightOperandList.elementAt(0),
+                    rightOperandList.elementAt(0),
                     false,
 					cm);
 
@@ -278,7 +278,7 @@ class BetweenOperatorNode extends Binary
         leftBCO = new BinaryRelationalOperatorNode(
 							C_NodeTypes.BINARY_GREATER_EQUALS_OPERATOR_NODE,
 							leftOperand, 
-                            (ValueNode)rightOperandList.elementAt(0),
+                            rightOperandList.elementAt(0),
                             false,
 							cm);
 		/* Set type info for the operator node */
@@ -288,7 +288,7 @@ class BetweenOperatorNode extends Binary
         rightBCO = new BinaryRelationalOperatorNode(
 						C_NodeTypes.BINARY_LESS_EQUALS_OPERATOR_NODE,
 						leftOperand, 
-                        (ValueNode)rightOperandList.elementAt(1),
+                        rightOperandList.elementAt(1),
                         false,
 						cm);
 		/* Set type info for the operator node */

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/BinaryRelationalOperatorNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/BinaryRelationalOperatorNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/BinaryRelationalOperatorNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/BinaryRelationalOperatorNode.java Fri Jun 28 04:32:08 2013
@@ -1379,7 +1379,7 @@ class BinaryRelationalOperatorNode
 
 	/** return the selectivity of this predicate.
 	 */
-    @Override
+    @Override @SuppressWarnings("fallthrough")
 	public double selectivity(Optimizable optTable)
 	throws StandardException
 	{

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CastNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CastNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CastNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CastNode.java Fri Jun 28 04:32:08 2013
@@ -187,7 +187,7 @@ class CastNode extends ValueNode
 	 *
 	 * @exception StandardException		Thrown on error
 	 */
-    @Override
+    @Override @SuppressWarnings("fallthrough")
     ValueNode bindExpression(FromList fromList, SubqueryList subqueryList, List<AggregateNode> aggregates)
 				throws StandardException
 	{

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CoalesceFunctionNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CoalesceFunctionNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CoalesceFunctionNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CoalesceFunctionNode.java Fri Jun 28 04:32:08 2013
@@ -155,37 +155,41 @@ class CoalesceFunctionNode extends Value
 		//find the first non-param argument. The generated method will generate code to call coalesce on this argument
 		for (int index = 0; index < argumentsListSize; index++)
 		{
-			if (!(((ValueNode) argumentsList.elementAt(index)).requiresTypeFromContext()))
+            if (!argumentsList.elementAt(index).requiresTypeFromContext())
 			{
 				firstNonParameterNodeIdx = index;
 				break;
 			}
 		}
 
-		//make sure these arguments are compatible to each other before coalesce can be allowed
-		for (int index = 0; index < argumentsListSize; index++)
-		{
-			if (((ValueNode) argumentsList.elementAt(index)).requiresTypeFromContext()) //since we don't know the type of param, can't check for compatibility
+        // Make sure these arguments are compatible to each other before
+        // coalesce can be allowed.
+        for (ValueNode vn : argumentsList) {
+            if (vn.requiresTypeFromContext()) {
+                // Since we don't know the type of param, can't check for
+                // compatibility.
 				continue;
-				argumentsList.compatible((ValueNode) argumentsList.elementAt(index));
+            }
+            argumentsList.compatible(vn);
 		}
 
-		//set the result type to the most dominant datatype in the arguments list and based on the table listed above
+        // Set the result type to the most dominant datatype in the arguments
+        // list and based on the table listed above.
 		setType(argumentsList.getDominantTypeServices());
 
-		//set all the parameter types to the type of the result type
-		for (int index = 0; index < argumentsListSize; index++)
+        // Set all the parameter types to the type of the result type.
+        for (ValueNode vn : argumentsList)
 		{
-			if (((ValueNode) argumentsList.elementAt(index)).requiresTypeFromContext())
+            if (vn.requiresTypeFromContext())
 			{
-				((ValueNode)argumentsList.elementAt(index)).setType(getTypeServices());
+                vn.setType(getTypeServices());
 			}
 		}
 		return this;
 	}
 
 	/**
-	 * Do code generation for coalese/value
+     * Do code generation for coalesce/value
 	 *
 	 * @param acb	The ExpressionClassBuilder for the class we're generating
 	 * @param mb	The method the expression will go into
@@ -257,7 +261,7 @@ class CoalesceFunctionNode extends Value
 			}
 
 			setArrayMethod.getField(arrayField); 
-			((ValueNode) argumentsList.elementAt(index)).generateExpression(acb, setArrayMethod);
+            argumentsList.elementAt(index).generateExpression(acb, setArrayMethod);
 			setArrayMethod.upCast(receiverType);
 			setArrayMethod.setArrayElement(index);
 		}
@@ -283,7 +287,7 @@ class CoalesceFunctionNode extends Value
 		*/
 
 		// coalesce will be called on this non-parameter argument
-		((ValueNode) argumentsList.elementAt(firstNonParameterNodeIdx)).
+        argumentsList.elementAt(firstNonParameterNodeIdx).
 			generateExpression(acb, mb);
 
 		mb.upCast(ClassName.DataValueDescriptor);

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java Fri Jun 28 04:32:08 2013
@@ -634,16 +634,16 @@ public class CompilerContextImpl extends
 		return warnings;
 	}
 
-	/////////////////////////////////////////////////////////////////////////////////////
-	//
-	// class interface
-	//
-	// this constructor is called with the parser
-	// to be saved when the context
-	// is created (when the first statement comes in, likely).
-	//
-	/////////////////////////////////////////////////////////////////////////////////////
+    /*
+     * class interface
+     */
 
+    /**
+     * This constructor creates and saves the parser using the language
+     * connection factory when the context is created (when the first statement
+     * comes in, likely).
+     */
+    @SuppressWarnings("LeakingThisInConstructor")
 	public CompilerContextImpl(ContextManager cm,
 			LanguageConnectionContext lcc,
 		TypeCompilerFactory typeCompilerFactory )
@@ -671,9 +671,8 @@ public class CompilerContextImpl extends
 		requiredRoutinePrivileges = null;
 		requiredUsagePrivileges = null;
 		requiredRolePrivileges = null;
-		LanguageConnectionContext lcc = (LanguageConnectionContext)
-		getContextManager().getContext(LanguageConnectionContext.CONTEXT_ID);
-		if( lcc.usesSqlAuthorization())
+
+        if( lcc.usesSqlAuthorization())
 		{
 			requiredColumnPrivileges = new HashMap<StatementTablePermission,StatementColumnPermission>();
 			requiredTablePrivileges = new HashMap<StatementTablePermission,StatementTablePermission>();

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ConditionalNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ConditionalNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ConditionalNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ConditionalNode.java Fri Jun 28 04:32:08 2013
@@ -77,7 +77,7 @@ class ConditionalNode extends ValueNode
 	 *
 	 * @param depth		The depth of this node in the tree
 	 */
-
+    @Override
     void printSubNodes(int depth)
 	{
 		if (SanityManager.DEBUG)
@@ -192,13 +192,11 @@ class ConditionalNode extends ValueNode
 		 * dummy SubqueryList and AggreateList (we don't care)
 		 */
 
-		ValueNode thenNode =
-			((ValueNode)thenElseList.elementAt(0)).bindExpression(
+        ValueNode thenNode = thenElseList.elementAt(0).bindExpression(
                 fromList, subqueryList, aggregates);
         thenElseList.setElementAt( thenNode, 0 );
 
-		ValueNode elseNode =
-			((ValueNode)thenElseList.elementAt(1)).bindExpression(
+        ValueNode elseNode = thenElseList.elementAt(1).bindExpression(
                 fromList, subqueryList, aggregates);
         thenElseList.setElementAt( elseNode, 1 );
 
@@ -279,8 +277,8 @@ class ConditionalNode extends ValueNode
 		
 		// need to have nullNodes nullable
 		castType = castType.getNullabilityType(true);
-		ValueNode thenNode = (ValueNode)thenElseList.elementAt(0);
-		ValueNode elseNode = (ValueNode)thenElseList.elementAt(1);
+        ValueNode thenNode = thenElseList.elementAt(0);
+        ValueNode elseNode = thenElseList.elementAt(1);
 
 		// first check if the "then" node is NULL
 		if (isNullNode(thenNode) &&
@@ -289,7 +287,8 @@ class ConditionalNode extends ValueNode
 			// recast and rebind. findTypes would have bound as SQL CHAR.
 			// need to rebind here. (DERBY-3032)
 			thenElseList.setElementAt(recastNullNode(thenNode, castType), 0);
-            ((ValueNode) thenElseList.elementAt(0)).bindExpression(fromList, subqueryList, aggregates);
+            thenElseList.elementAt(0).bindExpression(
+                    fromList, subqueryList, aggregates);
 			
 		// otherwise recurse on thenNode, but only if it's a conditional
 		} else if (isConditionalNode(thenNode)) {
@@ -304,7 +303,8 @@ class ConditionalNode extends ValueNode
 			// recast and rebind. findTypes would have bound as SQL CHAR.
 			// need to rebind here. (DERBY-3032)
 			thenElseList.setElementAt(recastNullNode(elseNode, castType), 1);
-            ((ValueNode) thenElseList.elementAt(1)).bindExpression(fromList, subqueryList, aggregates);
+            thenElseList.elementAt(1).bindExpression(
+                    fromList, subqueryList, aggregates);
 		// otherwise recurse on elseNode, but only if it's a conditional
 		} else if (isConditionalNode(elseNode)) {
 			recastNullNodes(((ConditionalNode)elseNode).thenElseList,
@@ -331,7 +331,7 @@ class ConditionalNode extends ValueNode
 	 *
 	 * @exception StandardException Thrown on error.
 	 */
-	private QueryTreeNode recastNullNode(ValueNode nodeToCast,
+    private CastNode recastNullNode(ValueNode nodeToCast,
 		DataTypeDescriptor typeToUse) throws StandardException
 	{
         return new CastNode(
@@ -379,8 +379,8 @@ class ConditionalNode extends ValueNode
 			 * The untyped NULL should have a data type descriptor
 			 * that allows its value to be nullable.
 			 */
-            QueryTreeNode cast = new CastNode(
-                        (ValueNode)thenElseList.elementAt(0),
+            CastNode cast = new CastNode(
+                        thenElseList.elementAt(0),
 						bcon.getLeftOperand().getTypeServices().getNullabilityType(true),
 						getContextManager());
 
@@ -405,8 +405,8 @@ class ConditionalNode extends ValueNode
 		
 		// Can't get the then and else expressions until after they've been bound
 		// expressions have been bound by findType and rebound by recastNullNodes if needed.
-		ValueNode thenExpression = (ValueNode) thenElseList.elementAt(0);
-		ValueNode elseExpression = (ValueNode) thenElseList.elementAt(1);
+        ValueNode thenExpression = thenElseList.elementAt(0);
+        ValueNode elseExpression = thenElseList.elementAt(1);
 
 		/* testCondition must be a boolean expression.
 		 * If it is a ? parameter on the left, then set type to boolean,
@@ -492,8 +492,8 @@ class ConditionalNode extends ValueNode
 		** stick it over the original expression
 		*/
 		TypeId condTypeId = getTypeId();
-		TypeId thenTypeId = ((ValueNode) thenElseList.elementAt(0)).getTypeId();
-		TypeId elseTypeId = ((ValueNode) thenElseList.elementAt(1)).getTypeId();
+        TypeId thenTypeId = thenElseList.elementAt(0).getTypeId();
+        TypeId elseTypeId = thenElseList.elementAt(1).getTypeId();
 
 		/* Need to generate conversion if thenExpr or elseExpr is not of 
 		 * dominant type.  (At least 1 of them must be of the dominant type.)
@@ -501,7 +501,7 @@ class ConditionalNode extends ValueNode
 		if (thenTypeId.typePrecedence() != condTypeId.typePrecedence())
 		{
             ValueNode cast = new CastNode(
-                                (ValueNode)thenElseList.elementAt(0),
+                                thenElseList.elementAt(0),
                                 getTypeServices(),	// cast to dominant type
 								getContextManager());
 			cast = cast.bindExpression(fromList, 
@@ -514,7 +514,7 @@ class ConditionalNode extends ValueNode
 		else if (elseTypeId.typePrecedence() != condTypeId.typePrecedence())
 		{
             ValueNode cast = new CastNode(
-                                (ValueNode)thenElseList.elementAt(1),
+                                thenElseList.elementAt(1),
                                 getTypeServices(),	// cast to dominant type
 								getContextManager());
 			cast = cast.bindExpression(fromList, 
@@ -671,8 +671,8 @@ class ConditionalNode extends ValueNode
 		}
 
 		/* Simply swap the then and else expressions */
-		thenExpression = (ValueNode) thenElseList.elementAt(0);
-		elseExpression = (ValueNode) thenElseList.elementAt(1);
+        thenExpression = thenElseList.elementAt(0);
+        elseExpression = thenElseList.elementAt(1);
 		thenElseList.setElementAt(elseExpression, 0);
 		thenElseList.setElementAt(thenExpression, 1);
 
@@ -697,9 +697,9 @@ class ConditionalNode extends ValueNode
 		mb.callMethod(VMOpcode.INVOKEINTERFACE, (String) null, "equals", "boolean", 1);
 
 		mb.conditionalIf();
-		  ((ValueNode) thenElseList.elementAt(0)).generateExpression(acb, mb);
+         thenElseList.elementAt(0).generateExpression(acb, mb);
 		mb.startElseCode();
-		  ((ValueNode) thenElseList.elementAt(1)).generateExpression(acb, mb);
+         thenElseList.elementAt(1).generateExpression(acb, mb);
 		mb.completeConditional();
 	}
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTableNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTableNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTableNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTableNode.java Fri Jun 28 04:32:08 2013
@@ -323,9 +323,8 @@ class CreateTableNode extends DDLStateme
 			/* Create table element list from columns in query expression */
             tableElementList = new TableElementList(getContextManager());
 			
-			for (int index = 0; index < qeRCL.size(); index++)
+            for (ResultColumn rc : qeRCL)
 			{
-				ResultColumn rc = (ResultColumn) qeRCL.elementAt(index);
 				if (rc.isGenerated()) 
 				{
 					continue;

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTriggerNode.java Fri Jun 28 04:32:08 2013
@@ -412,10 +412,9 @@ class CreateTriggerNode extends DDLState
 		if (triggerCols != null && triggerCols.size() != 0)
 		{
             HashSet<String> columnNames = new HashSet<String>();
-			int tcSize = triggerCols.size();
-			for (int i = 0; i < tcSize; i++)
+
+            for (ResultColumn rc : triggerCols)
 			{
-				ResultColumn rc  = (ResultColumn) triggerCols.elementAt(i);
 				if (!columnNames.add(rc.getName()))
 				{
 					throw StandardException.newException(SQLState.LANG_DUPLICATE_COLUMN_IN_TRIGGER_UPDATE, 
@@ -526,8 +525,7 @@ class CreateTriggerNode extends DDLState
 			//their column positions and ensure that those columns do
 			//indeed exist in the trigger table.
 			referencedColInts = new int[triggerCols.size()];
-			ResultColumn rc;
-			ColumnDescriptor cd;
+
 			//This is the most interesting case for us. If we are here, 
 			//then it means that the trigger is defined at the row level
 			//and a set of trigger columns are specified in the CREATE
@@ -539,8 +537,9 @@ class CreateTriggerNode extends DDLState
 			//    FOR EACH ROW UPDATE table2 SET c24=oldt.c14;
 			
 			for (int i=0; i < triggerCols.size(); i++){
-				rc = (ResultColumn)triggerCols.elementAt(i);
-				cd = triggerTableDescriptor.getColumnDescriptor(rc.getName());
+                ResultColumn rc = triggerCols.elementAt(i);
+                ColumnDescriptor cd =
+                    triggerTableDescriptor.getColumnDescriptor(rc.getName());
 				//Following will catch the case where an invalid trigger column
 				//has been specified in CREATE TRIGGER statement.
 				//CREATE TRIGGER tr1 AFTER UPDATE OF c1678 ON table1 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateViewNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateViewNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateViewNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateViewNode.java Fri Jun 28 04:32:08 2013
@@ -278,7 +278,7 @@ class CreateViewNode extends DDLStatemen
 		}
 
 		DependencyManager 		dm = dataDictionary.getDependencyManager();
-		ProviderInfo[]			providerInfos = dm.getPersistentProviderInfos(apl);
+        ProviderInfo[]          provInfo = dm.getPersistentProviderInfos(apl);
 		// need to clear the column info in case the same table descriptor
 		// is reused, eg., in multiple target only view definition
 		dm.clearColumnInfoInProviders(apl);
@@ -291,7 +291,7 @@ class CreateViewNode extends DDLStatemen
 				" on return from RS.bindExpressions()");
 		}
 
-		return providerInfos;
+        return provInfo;
 	}
 
 	/**
@@ -343,7 +343,7 @@ class CreateViewNode extends DDLStatemen
 
 		for (int index = 0; index < colInfos.length; index++)
 		{
-			ResultColumn rc = (ResultColumn) rcl.elementAt(index);
+            ResultColumn rc = rcl.elementAt(index);
 			// The colInfo array has been initialized to be of length 
 			// visibleSize() (DERBY-4230).  This code assumes that all the visible
 			// columns are at the beginning of the rcl. Throw an assertion 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CursorNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CursorNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CursorNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CursorNode.java Fri Jun 28 04:32:08 2013
@@ -738,7 +738,7 @@ public class CursorNode extends DMLState
 		int size = updatableColumns.size();
 		TableDescriptor tableDescriptor;
 		String columnName;
-		ResultColumnList rcls = resultSet.getResultColumns();
+        ResultColumnList rcl = resultSet.getResultColumns();
 
 		for (int index = 0; index < size; index++)
 		{
@@ -749,18 +749,29 @@ public class CursorNode extends DMLState
 					throw StandardException.newException(SQLState.LANG_COLUMN_NOT_FOUND, columnName);
 		    }
 
-		    ResultColumn rc;
-		    //make sure that we are not using correlation names for updatable columns. 
-		    //eg select c11 as col1, 2, c13 as col3 from t1 for update of c11, c12
-		    //In the eg above, correlation name for c11 will cause exception because Derby does not support correlation name for updatable columns
-		    //But correlation name for c13 is ok because it is a read only column
-		    for (int rclsIndex = 0; rclsIndex < rcls.size(); rclsIndex++) {//look through each column in the resultset for cursor
-					rc = ((ResultColumn) rcls.elementAt(rclsIndex));
-					if (rc.getSourceTableName() == null) //continue to look at the next column because this is derived column in the select list
-					continue;
-					if (rc.getExpression() != null && rc.getExpression().getColumnName().equals(columnName) &&  !rc.getName().equals(columnName)) {
-					throw StandardException.newException(SQLState.LANG_CORRELATION_NAME_FOR_UPDATABLE_COLUMN_DISALLOWED_IN_CURSOR, columnName);
-					}
+            // Make sure that we are not using correlation names for updatable
+            // columns.
+            //
+            // Example:
+            //     select c11 as col1, 2, c13 as col3 from t1
+            //         for update of c11, c12
+            //
+            // The correlation name for c11 will cause an exception because
+            // Derby does not support correlation name for updatable
+            // columns. However, a correlation name for c13 is ok because it is
+            // a read only column.
+
+            for (ResultColumn rc : rcl) {
+                // Look through each column in the resultset for cursor.
+                if (rc.getSourceTableName() == null) {
+                    // Continue to look at the next column because this is
+                    // a derived column in the select list.
+                    continue;
+                }
+
+                if (rc.getExpression() != null && rc.getExpression().getColumnName().equals(columnName) &&  !rc.getName().equals(columnName)) {
+                    throw StandardException.newException(SQLState.LANG_CORRELATION_NAME_FOR_UPDATABLE_COLUMN_DISALLOWED_IN_CURSOR, columnName);
+                }
 		    }
 		}
 	}

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=1497644&r1=1497643&r2=1497644&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 28 04:32:08 2013
@@ -413,7 +413,7 @@ abstract class DMLModStatementNode exten
 		TableDescriptor		targetTableDescriptor,
 		ResultColumnList	sourceRCL,
 		ResultColumnList	targetRCL,
-        boolean                 forUpdate,
+        boolean             forUpdate,
         ResultSetNode       updateResultSet
     )
 		throws StandardException
@@ -423,7 +423,7 @@ abstract class DMLModStatementNode exten
 
         for ( int i = 0; i < count; i++ )
         {
-            ResultColumn    rc = (ResultColumn) targetRCL.elementAt( i );
+            ResultColumn rc = targetRCL.elementAt( i );
 
             //
             // For updates, there are two copies of the column in the row: a
@@ -562,9 +562,8 @@ abstract class DMLModStatementNode exten
 			}
 		}
 
-		clauseTree = ((ResultColumn) 
-							((CursorNode) qt).getResultSetNode().getResultColumns().elementAt(0)).
-									getExpression();
+        clauseTree = ((CursorNode) qt).getResultSetNode().getResultColumns().
+                elementAt(0).getExpression();
 
 		lcc.popCompilerContext(newCC);
 
@@ -1125,7 +1124,7 @@ abstract class DMLModStatementNode exten
 	{
 		CompilerContext 			compilerContext = getCompilerContext();
 
-        for (Iterator descIter = tdl.iterator(); descIter.hasNext() ; ) {
+        for (Iterator<?> descIter = tdl.iterator(); descIter.hasNext() ; ) {
             TriggerDescriptor td = (TriggerDescriptor)descIter.next();
             /*
             ** The dependent now depends on this trigger.
@@ -1487,23 +1486,18 @@ abstract class DMLModStatementNode exten
 	  */
 	public	void	generateGenerationClauses
 	(
-        ResultColumnList            rcl,
-        int                                 resultSetNumber,
-        boolean                         isUpdate,
+        ResultColumnList        rcl,
+        int                     resultSetNumber,
+        boolean                 isUpdate,
 		ExpressionClassBuilder	ecb,
 		MethodBuilder			mb
     )
-							throws StandardException
+        throws StandardException
 	{
-		ResultColumn rc; 
-		int size = rcl.size();
         boolean hasGenerationClauses = false;
 
-		for (int index = 0; index < size; index++)
+        for (ResultColumn rc : rcl)
 		{
-			rc = (ResultColumn) rcl.elementAt(index);
-
-            //
             // Generated columns should be populated after the base row because
             // the generation clauses may refer to base columns that have to be filled
             // in first.
@@ -1589,7 +1583,7 @@ abstract class DMLModStatementNode exten
         }
         for ( int i = startColumn; i < size; i++ )
         {
-            ResultColumn    rc = (ResultColumn) rcl.elementAt( i );
+            ResultColumn rc = rcl.elementAt( i );
 
             if ( !rc.hasGenerationClause() ) { continue; }
 
@@ -1867,11 +1861,9 @@ abstract class DMLModStatementNode exten
 		
 		String synTableName = synonymTableName.getTableName();
 		
-		int	count = rcl.size();
-		for (int i = 0; i < count; i++)
+        for (ResultColumn rc : rcl)
 		{
-			ResultColumn    column    = (ResultColumn) rcl.elementAt(i);
-			ColumnReference	reference = column.getReference();
+            ColumnReference reference = rc.getReference();
 
 			if ( reference != null )
 			{

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=1497644&r1=1497643&r2=1497644&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 28 04:32:08 2013
@@ -275,9 +275,8 @@ public  class DefaultNode extends ValueN
 			}
 		}
 
-		defaultTree = ((ResultColumn) 
-							((CursorNode) qt).getResultSetNode().getResultColumns().elementAt(0)).
-									getExpression();
+        defaultTree = ((CursorNode) qt).getResultSetNode().getResultColumns().
+                elementAt(0).getExpression();
 
 		lcc.popCompilerContext(newCC);
 

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=1497644&r1=1497643&r2=1497644&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 28 04:32:08 2013
@@ -402,7 +402,7 @@ class DeleteNode extends DMLModStatement
 		if (targetTableDescriptor != null)
 		{
 			// Base table
-			int lockMode = resultSet.updateTargetLockMode();
+            int lckMode = resultSet.updateTargetLockMode();
 			long heapConglomId = targetTableDescriptor.getHeapConglomerateId();
 			TransactionController tc = getLanguageConnectionContext().getTransactionCompile();
 			StaticCompiledOpenConglomInfo[] indexSCOCIs = 
@@ -419,7 +419,7 @@ class DeleteNode extends DMLModStatement
 			*/
 			if (targetTableDescriptor.getLockGranularity() == TableDescriptor.TABLE_LOCK_GRANULARITY)
 			{
-				lockMode = TransactionController.MODE_TABLE;
+                lckMode = TransactionController.MODE_TABLE;
 			}
 
 			ResultDescription resultDescription = null;
@@ -442,7 +442,7 @@ class DeleteNode extends DMLModStatement
 				  deferred,
 				  false,
 				  targetTableDescriptor.getUUID(),
-				  lockMode,
+                  lckMode,
 				  null, null, null, 0, null, null, 
 				  resultDescription,
 				  getFKInfo(), 
@@ -795,7 +795,7 @@ class DeleteNode extends DMLModStatement
 
         fromList.addFromTable(fromTable);
 
-        SelectNode resultSet = new SelectNode(getSetClause(cdl),
+        SelectNode sn = new SelectNode(getSetClause(cdl),
                                               fromList, /* FROM list */
                                               whereClause, /* WHERE clause */
                                               null, /* GROUP BY list */
@@ -803,7 +803,7 @@ class DeleteNode extends DMLModStatement
                                               null, /* windows */
                                               getContextManager());
 
-        return new UpdateNode(tableName, resultSet, getContextManager());
+        return new UpdateNode(tableName, sn, getContextManager());
 
     }
 
@@ -927,7 +927,7 @@ class DeleteNode extends DMLModStatement
 			needsDeferredProcessing[0] = true;
 			
 			boolean needToIncludeAllColumns = false;
-            for (Iterator descIter = relevantTriggers.iterator();
+            for (Iterator<?> descIter = relevantTriggers.iterator();
                     descIter.hasNext(); ) {
                 TriggerDescriptor trd = (TriggerDescriptor)descIter.next();
 				//Does this trigger have REFERENCING clause defined on it.
@@ -964,12 +964,9 @@ class DeleteNode extends DMLModStatement
 		if ( correlationName == null ) { return; }
 
 		TableName	correlationNameNode = makeTableName( null, correlationName );
-		int			count = rcl.size();
 
-		for ( int i = 0; i < count; i++ )
+        for (ResultColumn column : rcl)
 		{
-			ResultColumn	column = (ResultColumn) rcl.elementAt( i );
-
 			ValueNode		expression = column.getExpression();
 
 			if ( (expression != null) && (expression instanceof ColumnReference) )

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ExpressionClassBuilder.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ExpressionClassBuilder.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ExpressionClassBuilder.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/ExpressionClassBuilder.java Fri Jun 28 04:32:08 2013
@@ -567,7 +567,7 @@ abstract	class ExpressionClassBuilder im
 	}	
 
 
-	FormatableArrayHolder getColumnOrdering(OrderedColumnList  oclist) {
+    FormatableArrayHolder getColumnOrdering(OrderedColumnList<?>  oclist) {
 		int numCols = (oclist == null) ? 0 : oclist.size();
 
 		if (numCols == 0)

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FKConstraintDefinitionNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FKConstraintDefinitionNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FKConstraintDefinitionNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FKConstraintDefinitionNode.java Fri Jun 28 04:32:08 2013
@@ -129,9 +129,8 @@ public final class FKConstraintDefinitio
 		}
 		else
 		{
-			for (int i=0; i<refRcl.size(); i++)
+            for (ResultColumn rc : refRcl)
 			{
-				ResultColumn rc = (ResultColumn) refRcl.elementAt(i);
 				ColumnDescriptor cd = td.getColumnDescriptor(rc.getName());
 				if (cd != null)
 				{

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java Fri Jun 28 04:32:08 2013
@@ -613,11 +613,8 @@ class FromBaseTable extends FromTable
 		baseCols = irg.baseColumnPositions();
 
 		/* First we check to see if this is a covering index */
-		int rclSize = resultColumns.size();
-		for (int index = 0; index < rclSize; index++)
+        for (ResultColumn rc : resultColumns)
 		{
-			ResultColumn rc = (ResultColumn) resultColumns.elementAt(index);
-
 			/* Ignore unreferenced columns */
 			if (! rc.isReferenced())
 			{
@@ -680,7 +677,7 @@ class FromBaseTable extends FromTable
 		boolean indexSpecified = false;
 		boolean constraintSpecified = false;
 		ConstraintDescriptor consDesc = null;
-		Enumeration e = tableProperties.keys();
+        Enumeration<?> e = tableProperties.keys();
 
         StringUtil.SQLEqualsIgnoreCase(tableDescriptor.getSchemaName(), "SYS");
 		while (e.hasMoreElements())
@@ -1354,10 +1351,9 @@ class FromBaseTable extends FromTable
                     // when the index is being considered by the optimizer.
                     IndexRowGenerator irg = cd.getIndexDescriptor();
                     if (irg.isUnique() 
-                        && irg.numberOfOrderedColumns() == 1 
-                        && startStopPredCount == 1) {
-                            statStartStopSelectivity = 
-                                (double)(1/(double)baseRowCount());
+                            && irg.numberOfOrderedColumns() == 1
+                            && startStopPredCount == 1) {
+                        statStartStopSelectivity = (1/(double)baseRowCount());
                     }
                 }
             }
@@ -2384,10 +2380,10 @@ class FromBaseTable extends FromTable
 				//sql accessing a view, we only need to look for select privilege
 				//on the actual view and that is what the following code is
 				//checking.
-				for (int i = 0; i < resultColumns.size(); i++) {
-					ResultColumn rc = (ResultColumn) resultColumns.elementAt(i);
-					if (rc.isPrivilegeCollectionRequired())
+                for (ResultColumn rc : resultColumns) {
+                    if (rc.isPrivilegeCollectionRequired()) {
 						compilerContext.addRequiredColumnPriv( rc.getTableColumnDescriptor());
+                    }
 				}
 
                 fsq = new FromSubquery(
@@ -3020,9 +3016,8 @@ class FromBaseTable extends FromTable
 		 * really need to completely disable bulk fetching here,
 		 * or can we do something else?
 		 */
-		for (int i = 0; i < restrictionList.size(); i++)
+        for (Predicate pred : restrictionList)
 		{
-			Predicate pred = (Predicate)restrictionList.elementAt(i);
 			if (pred.isInListProbePredicate() && pred.isStartKey())
 			{
 				disableBulkFetch();
@@ -4400,8 +4395,8 @@ class FromBaseTable extends FromTable
 		}
 
 		HashSet<ValueNode> columns = new HashSet<ValueNode>();
-		for (int i = 0; i < resultColumns.size(); i++) {
-			ResultColumn rc = (ResultColumn) resultColumns.elementAt(i);
+
+        for (ResultColumn rc : resultColumns) {
 			columns.add(rc.getExpression());
 		}
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromList.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromList.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromList.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromList.java Fri Jun 28 04:32:08 2013
@@ -44,7 +44,8 @@ import org.apache.derby.iapi.util.String
  *
  */
 
-class FromList extends QueryTreeNodeVector implements OptimizableList
+class FromList extends    QueryTreeNodeVector<ResultSetNode>
+               implements OptimizableList
 {
 	Properties	properties;
 	// RESOLVE: The default should be false
@@ -79,7 +80,7 @@ class FromList extends QueryTreeNodeVect
      * @param cm context manager
      */
     FromList(ContextManager cm) {
-        super(cm);
+        super(ResultSetNode.class, cm);
         this.isTransparent = false;
         setNodeType(C_NodeTypes.FROM_LIST);
     }
@@ -94,7 +95,7 @@ class FromList extends QueryTreeNodeVect
 
     FromList(boolean optimizeJoinOrder, ContextManager cm)
 	{
-        super(cm);
+        super(ResultSetNode.class, cm);
         constructorMinion(optimizeJoinOrder);
 	}
 
@@ -111,7 +112,7 @@ class FromList extends QueryTreeNodeVect
              FromTable fromTable,
              ContextManager cm) throws StandardException
 	{
-        super(cm);
+        super(ResultSetNode.class, cm);
         constructorMinion(optimizeJoinOrder);
         addFromTable(fromTable);
 	}
@@ -199,7 +200,7 @@ class FromList extends QueryTreeNodeVect
 			}
 		}
 
-		addElement(fromTable);
+        addElement(fromTable);
 	}
 
 	/**
@@ -931,7 +932,7 @@ class FromList extends QueryTreeNodeVect
 		** there is nothing in this properties list that relies on binding
 		** or optimization to validate.
 		*/
-		Enumeration e = properties.keys();
+        Enumeration<?> e = properties.keys();
 		while (e.hasMoreElements())
 		{
 			String key = (String) e.nextElement();
@@ -1012,15 +1013,17 @@ class FromList extends QueryTreeNodeVect
 			*/
 			if (sum != ( ( joinOrder.length * (joinOrder.length - 1) ) / 2) )
 			{
-				String arrayVals = "";
-				for (int i = 0; i < joinOrder.length; i++)
-					arrayVals = arrayVals + joinOrder[i] + " ";
+                StringBuilder arrayVals = new StringBuilder();
+                for (int i : joinOrder) {
+                    arrayVals.append(i);
+                    arrayVals.append(' ');
+                }
 				SanityManager.THROWASSERT("joinOrder array has some duplicate value: " + arrayVals);
 			}
 		}
 
 		/* Form a list that's in the order we want */
-		QueryTreeNode[] orderedFL = new FromTable[joinOrder.length];
+        ResultSetNode[] orderedFL = new FromTable[joinOrder.length];
 		for (posn = 0; posn < joinOrder.length; posn++)
 		{
 			/*
@@ -1217,9 +1220,10 @@ class FromList extends QueryTreeNodeVect
 
 		PredicateList predicatesTemp;
         predicatesTemp = new PredicateList(getContextManager());
-		int wherePredicatesSize = wherePredicates.size();
-		for (int index = 0; index < wherePredicatesSize; index++)
-			predicatesTemp.addPredicate((Predicate)wherePredicates.elementAt(index));
+
+        for (Predicate p : wherePredicates) {
+            predicatesTemp.addPredicate(p);
+        }
 
 		/* When considering subquery flattening, we are interested
 		 * in the 1st (and only) entry in the RCL.  (The RCL will be
@@ -1229,7 +1233,7 @@ class FromList extends QueryTreeNodeVect
 		 */
 		if (rcl != null)
 		{
-			ResultColumn rc = (ResultColumn) rcl.elementAt(0);
+            ResultColumn rc = rcl.elementAt(0);
 			if (rc.getExpression() instanceof ColumnReference)
 			{
 				additionalCR = (ColumnReference) rc.getExpression();
@@ -1294,12 +1298,11 @@ class FromList extends QueryTreeNodeVect
 			if (fbt.getExistsBaseTable())
 			{
 				int existsTableNumber = fbt.getTableNumber();
-				int predicatesTempSize = predicatesTemp.size();
-				for (int predicatesTempIndex = predicatesTempSize-1;
-					predicatesTempIndex >= 0; predicatesTempIndex--)
+
+                for (int i = predicatesTemp.size() - 1; i >= 0; i--)
 				{
                     AndNode topAndNode =
-						((Predicate) predicatesTemp.elementAt(predicatesTempIndex)).getAndNode();
+                            predicatesTemp.elementAt(i).getAndNode();
 
 					for (ValueNode whereWalker = topAndNode; whereWalker instanceof AndNode;
 						whereWalker = ((AndNode) whereWalker).getRightOperand())
@@ -1319,7 +1322,7 @@ class FromList extends QueryTreeNodeVect
 						JBitSet referencedTables = and.getLeftOperand().getTablesReferenced();
 						if (referencedTables.get(existsTableNumber))
 						{
-							predicatesTemp.removeElementAt(predicatesTempIndex);
+                            predicatesTemp.removeElementAt(i);
 							break;
 						}
 					}
@@ -1593,7 +1596,7 @@ class FromList extends QueryTreeNodeVect
 					"size() expected to be 1");
 			}
 		}
-		return ((ResultSetNode) elementAt(0)).updateTargetLockMode();
+        return elementAt(0).updateTargetLockMode();
 	}
 
 	/**

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromSubquery.java Fri Jun 28 04:32:08 2013
@@ -631,11 +631,8 @@ class FromSubquery extends FromTable
 
 		// Use visibleSize, because we don't want to propagate any order by
 		// columns not selected.
-		int rclSize = resultColumns.visibleSize();
-
-		for (int index = 0; index < rclSize; index++)
+        for (ResultColumn resultColumn : resultColumns)
 		{
-			ResultColumn resultColumn = (ResultColumn) resultColumns.elementAt(index);
 			ValueNode		 valueNode;
 			String			 columnName;
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromTable.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromTable.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromTable.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromTable.java Fri Jun 28 04:32:08 2013
@@ -434,7 +434,8 @@ abstract class FromTable extends ResultS
 		 *		invalid value for hashLoadFactor
 		 *		invalid value for hashMaxCapacity
 		 */
-		Enumeration e = tableProperties.keys();
+        Enumeration<?> e = tableProperties.keys();
+
 		while (e.hasMoreElements())
 		{
 			String key = (String) e.nextElement();
@@ -748,8 +749,7 @@ abstract class FromTable extends ResultS
      * {@code false} otherwise
      */
     public boolean hasLargeObjectColumns() {
-        for (int i = 0; i < resultColumns.size(); i++) {
-            ResultColumn rc = (ResultColumn) resultColumns.elementAt(i);
+        for (ResultColumn rc : resultColumns) {
             if (rc.isReferenced()) {
                 DataTypeDescriptor type = rc.getType();
                 if (type != null && type.getTypeId().isLOBTypeId()) {
@@ -841,7 +841,7 @@ abstract class FromTable extends ResultS
             {
                 if (refCols.isSet(i))
                 {
-                    ResultColumn rc = (ResultColumn) resultColumns.elementAt(i);
+                    ResultColumn rc = resultColumns.elementAt(i);
                     DataTypeDescriptor expressionType = rc.getExpression().getTypeServices();
                     if( expressionType != null)
                         perRowUsage += expressionType.estimatedMemoryUsage();
@@ -1110,12 +1110,8 @@ abstract class FromTable extends ResultS
 												TableName tableName)
 			throws StandardException
 	{
-		ResultColumn	 resultColumn;
-		ValueNode		 valueNode;
-		String			 columnName;
 		TableName		 exposedName;
         TableName        toCompare;
-
 		/* If allTableName is non-null, then we must check to see if it matches
 		 * our exposed name.
 		 */
@@ -1148,24 +1144,21 @@ abstract class FromTable extends ResultS
 			exposedName = makeTableName(null, correlationName);
 		}
 
-        ResultColumnList rcList = new ResultColumnList((getContextManager()));
+        final ContextManager cm = getContextManager();
+        ResultColumnList rcList = new ResultColumnList(cm);
 
 		/* Build a new result column list based off of resultColumns.
 		 * NOTE: This method will capture any column renaming due to 
 		 * a derived column list.
 		 */
-		int inputSize = inputRcl.size();
-		for (int index = 0; index < inputSize; index++)
+        for (ResultColumn rc : inputRcl)
 		{
-			// Build a ResultColumn/ColumnReference pair for the column //
-			columnName = ((ResultColumn) inputRcl.elementAt(index)).getName();
-            valueNode = new ColumnReference(columnName,
-											exposedName,
-											getContextManager());
-            resultColumn =
-                new ResultColumn(columnName, valueNode, getContextManager());
-			// Build the ResultColumnList to return //
-			rcList.addResultColumn(resultColumn);
+            ResultColumn newRc = new ResultColumn(
+                    rc.getName(),
+                    new ColumnReference(rc.getName(), exposedName, cm),
+                    cm);
+
+            rcList.addResultColumn(newRc);
 		}
 		return rcList;
 	}

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java Fri Jun 28 04:32:08 2013
@@ -765,7 +765,7 @@ class FromVTI extends FromTable implemen
         throws StandardException
     {
 		NewInvocationNode   constructor = (NewInvocationNode) methodCall;
-		Class[]  paramTypeClasses = constructor.getMethodParameterClasses();
+        Class<?>[]  paramTypeClasses = constructor.getMethodParameterClasses();
         Object[] paramObjects;
 
 		if (paramTypeClasses != null)
@@ -774,7 +774,7 @@ class FromVTI extends FromTable implemen
 
 			for (int index = 0; index < paramTypeClasses.length; index++)
 			{
-				Class paramClass = paramTypeClasses[index];
+                Class<?> paramClass = paramTypeClasses[index];
 
 				paramObjects[index] = methodParms[index].getConstantValueAsObject();
 
@@ -801,15 +801,15 @@ class FromVTI extends FromTable implemen
 				{
 					if (paramClass.equals(Integer.TYPE))
 					{
-						paramObjects[index] = new Integer(0);
+                        paramObjects[index] = Integer.valueOf(0);
 					}
 					else if (paramClass.equals(Short.TYPE))
 					{
-						paramObjects[index] = new Short((short) 0);
+                        paramObjects[index] = Short.valueOf((short) 0);
 					}
 					else if (paramClass.equals(Byte.TYPE))
 					{
-						paramObjects[index] = new Byte((byte) 0);
+                        paramObjects[index] = Byte.valueOf((byte)0);
 					}
 					else if (paramClass.equals(Long.TYPE))
 					{
@@ -837,7 +837,7 @@ class FromVTI extends FromTable implemen
 		}
 		else
 		{
-			paramTypeClasses = new Class[0];
+            paramTypeClasses = new Class<?>[0];
 			paramObjects = new Object[0];
 		}
 
@@ -845,7 +845,7 @@ class FromVTI extends FromTable implemen
         {
             ClassInspector classInspector = getClassFactory().getClassInspector();
             String javaClassName = methodCall.getJavaClassName();
-            Constructor constr = classInspector.getClass(javaClassName).getConstructor(paramTypeClasses);
+            Constructor<?> constr = classInspector.getClass(javaClassName).getConstructor(paramTypeClasses);
 
             return constr.newInstance(paramObjects);
         }
@@ -1037,9 +1037,6 @@ class FromVTI extends FromTable implemen
     ResultColumnList getAllResultColumns(TableName allTableName)
 			throws StandardException
 	{
-		ResultColumn	 resultColumn;
-		ValueNode		 valueNode;
-		String			 columnName;
         TableName        toCompare;
 
 		if(allTableName != null)
@@ -1053,32 +1050,25 @@ class FromVTI extends FromTable implemen
             return null;
         }
 
-        ResultColumnList rcList = new ResultColumnList((getContextManager()));
+        final ContextManager cm = getContextManager();
+        final ResultColumnList rcList = new ResultColumnList(cm);
 
 		/* Build a new result column list based off of resultColumns.
 		 * NOTE: This method will capture any column renaming due to 
 		 * a derived column list.
 		 */
-		int rclSize = resultColumns.size();
-		for (int index = 0; index < rclSize; index++)
+        for (ResultColumn rc : resultColumns)
 		{
-			resultColumn = (ResultColumn) resultColumns.elementAt(index);
-
-			if (resultColumn.isGenerated())
-			{
-				continue;
-			}
-
-			// Build a ResultColumn/ColumnReference pair for the column //
-			columnName = resultColumn.getName();
-            valueNode = new ColumnReference(columnName,
-											exposedName,
-											getContextManager());
-            resultColumn =
-                new ResultColumn(columnName, valueNode, getContextManager());
+            if (!rc.isGenerated()) {
+                // Build a ResultColumn/ColumnReference pair for the column //
+                ResultColumn newRc = new ResultColumn(
+                        rc.getName(),
+                        new ColumnReference(rc.getName(), exposedName, cm),
+                        cm);
 
-			// Build the ResultColumnList to return //
-			rcList.addResultColumn(resultColumn);
+                // Build the ResultColumnList to return //
+                rcList.addResultColumn(newRc);
+            }
 		}
 		return rcList;
 	}
@@ -1345,18 +1335,15 @@ class FromVTI extends FromTable implemen
     {
         if ( parentPredicates == null )  { return; }
 
-        int predicateCount = parentPredicates.size();
-
         // walk the list, looking for qualifiers, that is, WHERE clause
         // fragments (conjuncts)  which can be pushed into the table function
-        for ( int i = 0; i < predicateCount; i++ )
+        for (Predicate pp : parentPredicates)
         {
-            Predicate predicate = (Predicate) parentPredicates.elementAt( i );
-
-            if ( canBePushedDown( predicate ) )
+            if ( canBePushedDown( pp ) )
             {
                 // A Predicate has a top level AND node
-                Restriction newRestriction = makeRestriction( predicate.getAndNode(), columnNameMap );
+                Restriction newRestriction =
+                        makeRestriction( pp.getAndNode(), columnNameMap );
 
                 // If newRestriction is null, then we are confused. Don't push
                 // the restriction into the table function
@@ -1395,7 +1382,9 @@ class FromVTI extends FromTable implemen
      * @param clause The clause which should be turned into a Restriction.
      * @param columnNameMap Mapping between the exposed column names used in the predicates and the actual column names declared for the table function at CREATE FUNCTION time.
      */
-    private Restriction makeRestriction( ValueNode clause, HashMap columnNameMap )
+    private Restriction makeRestriction(
+            ValueNode clause,
+            HashMap<String, String> columnNameMap )
         throws StandardException
     {
         if ( clause instanceof AndNode )
@@ -1441,8 +1430,9 @@ class FromVTI extends FromTable implemen
      * @param clause The clause which should be turned into a Restriction.
      * @param columnNameMap Mapping between the exposed column names used in the predicates and the actual column names declared for the table function at CREATE FUNCTION time.
      */
-    private Restriction makeLeafRestriction( BinaryRelationalOperatorNode clause, HashMap columnNameMap )
-        throws StandardException
+    private Restriction makeLeafRestriction(
+            BinaryRelationalOperatorNode clause,
+            HashMap<String, String> columnNameMap) throws StandardException
     {
         int rawOperator = clause.getOperator();
         ColumnReference rawColumn;
@@ -1464,7 +1454,7 @@ class FromVTI extends FromTable implemen
         int comparisonOperator = mapOperator( rawOperator );
         if ( comparisonOperator < 0 ) { return iAmConfused( clause ); }
 
-        String columnName = (String) columnNameMap.get( rawColumn.getColumnName() );
+        String columnName = columnNameMap.get( rawColumn.getColumnName() );
         Object constantOperand = squeezeConstantValue( rawValue );
         if ( (columnName == null) || (constantOperand == null) ) { return iAmConfused( clause ); }
 
@@ -1477,8 +1467,9 @@ class FromVTI extends FromTable implemen
      * @param clause The IS NULL (or IS NOT NULL) node
      * @param columnNameMap Mapping between the exposed column names used in the predicates and the actual column names declared for the table function at CREATE FUNCTION time.
      */
-    private Restriction makeIsNullRestriction( IsNullNode clause, HashMap columnNameMap )
-        throws StandardException
+    private Restriction makeIsNullRestriction(
+            IsNullNode clause,
+            HashMap<String, String> columnNameMap) throws StandardException
     {
         ColumnReference rawColumn = (ColumnReference) clause.getOperand();
 
@@ -1489,7 +1480,7 @@ class FromVTI extends FromTable implemen
             (comparisonOperator != Restriction.ColumnQualifier.ORDER_OP_ISNOTNULL)
             ) { return iAmConfused( clause ); }
 
-        String columnName = (String) columnNameMap.get( rawColumn.getColumnName() );
+        String columnName = columnNameMap.get( rawColumn.getColumnName() );
         if ( columnName == null ) { return iAmConfused( clause ); }
 
         return new Restriction.ColumnQualifier( columnName, comparisonOperator, null );
@@ -1646,7 +1637,7 @@ class FromVTI extends FromTable implemen
 
 		for (int index = 0; index < rclSize; index++)
 		{
-			ResultColumn rc = (ResultColumn) resultColumns.elementAt(index);
+            ResultColumn rc = resultColumns.elementAt(index);
 			if (rc.isReferenced())
 			{
 				referencedCols.set(index);
@@ -2014,7 +2005,7 @@ class FromVTI extends FromTable implemen
     private boolean implementsDerbyStyleVTICosting( String className )
         throws StandardException
     {
-        Constructor     constructor = null;
+        Constructor<?>     constructor = null;
         Class<?>           vtiClass = lookupClass( className );
         Class<?>           vtiCostingClass = lookupClass( VTICosting.class.getName() );
 
@@ -2027,7 +2018,7 @@ class FromVTI extends FromTable implemen
         }
 
         try {
-            constructor = vtiClass.getConstructor( new Class[] {} );
+            constructor = vtiClass.getConstructor( new Class<?>[] {} );
         }
         catch (Throwable t)
         {
@@ -2055,7 +2046,8 @@ class FromVTI extends FromTable implemen
         Class<?>               vtiClass = lookupClass( className );
         
         try {
-            Constructor         constructor = vtiClass.getConstructor( new Class[] {} );
+            Constructor<?> constructor =
+                    vtiClass.getConstructor( new Class<?>[] {} );
             VTICosting          result =
                     (VTICosting) constructor.newInstance( (Object[])null );
 
@@ -2070,7 +2062,7 @@ class FromVTI extends FromTable implemen
     /**
      * Lookup the class that holds the VTI.
      */
-    private Class lookupClass( String className )
+    private Class<?> lookupClass( String className )
         throws StandardException
     {
         try {

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByList.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByList.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByList.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByList.java Fri Jun 28 04:32:08 2013
@@ -35,13 +35,13 @@ import org.apache.derby.iapi.sql.compile
  *
  */
 
-class GroupByList extends OrderedColumnList
+class GroupByList extends OrderedColumnList<GroupByColumn>
 {
 	int		numGroupingColsAdded = 0;
 	boolean         rollup = false;
 
     public GroupByList(ContextManager cm) {
-        super(cm);
+        super(GroupByColumn.class, cm);
         setNodeType(C_NodeTypes.GROUP_BY_LIST);
     }
 
@@ -69,7 +69,7 @@ class GroupByList extends OrderedColumnL
 					"position (" + position +
 					") expected to be between 0 and " + size());
 		}
-		return (GroupByColumn) elementAt(position);
+        return elementAt(position);
 	}
 
 
@@ -114,35 +114,32 @@ class GroupByList extends OrderedColumnL
 		ResultColumnList selectRCL = select.getResultColumns();
         SubqueryList dummySubqueryList = new SubqueryList(getContextManager());
 		int				 numColsAddedHere = 0;
-		int				 size = size();
 
 		/* Only 32677 columns allowed in GROUP BY clause */
-		if (size > Limits.DB2_MAX_ELEMENTS_IN_GROUP_BY)
+        if (size() > Limits.DB2_MAX_ELEMENTS_IN_GROUP_BY)
 		{
 			throw StandardException.newException(SQLState.LANG_TOO_MANY_ELEMENTS);
 		}
 
 		/* Bind the grouping column */
-		for (int index = 0; index < size; index++)
+        for (GroupByColumn groupByCol : this)
 		{
-			GroupByColumn groupByCol = (GroupByColumn) elementAt(index);
 			groupByCol.bindExpression(fromList,
                                       dummySubqueryList, aggregates);
 		}
 
 		
 		int				rclSize = selectRCL.size();
-		for (int index = 0; index < size; index++)
+        for (GroupByColumn groupingCol : this)
 		{
 			boolean				matchFound = false;
-			GroupByColumn		groupingCol = (GroupByColumn) elementAt(index);
 
 			/* Verify that this entry in the GROUP BY list matches a
 			 * grouping column in the select list.
 			 */
 			for (int inner = 0; inner < rclSize; inner++)
 			{
-				ResultColumn selectListRC = (ResultColumn) selectRCL.elementAt(inner);
+                ResultColumn selectListRC = selectRCL.elementAt(inner);
 				if (!(selectListRC.getExpression() instanceof ColumnReference)) {
 					continue;
 				}
@@ -242,10 +239,8 @@ class GroupByList extends OrderedColumnL
     GroupByColumn findGroupingColumn(ValueNode node)
 	        throws StandardException
 	{
-		int sz = size();
-		for (int i = 0; i < sz; i++) 
+        for (GroupByColumn gbc : this)
 		{
-			GroupByColumn gbc = (GroupByColumn)elementAt(i);
 			if (gbc.getColumnExpression().isEquivalent(node))
 			{
 				return gbc;
@@ -262,20 +257,15 @@ class GroupByList extends OrderedColumnL
 	 */
     void remapColumnReferencesToExpressions() throws StandardException
 	{
-		GroupByColumn	gbc;
-		int				size = size();
-
 		/* This method is called when flattening a FromTable.  We should
 		 * not be flattening a FromTable if the underlying expression that
 		 * will get returned out, after chopping out the redundant ResultColumns,
 		 * is not a ColumnReference.  (See ASSERT below.)
 		 */
-		for (int index = 0; index < size; index++)
+        for (GroupByColumn gbc : this)
 		{
-			ValueNode	retVN;
-			gbc = (GroupByColumn) elementAt(index);
-
-			retVN = gbc.getColumnExpression().remapColumnReferencesToExpressions();
+            ValueNode retVN =
+                gbc.getColumnExpression().remapColumnReferencesToExpressions();
 
 			if (SanityManager.DEBUG)
 			{
@@ -307,15 +297,15 @@ class GroupByList extends OrderedColumnL
 	}
 
 
-    void preprocess(
-			int numTables, FromList fromList, SubqueryList whereSubquerys, 
-			PredicateList wherePredicates) throws StandardException 
+    void preprocess(int numTables,
+                    FromList fromList,
+                    SubqueryList whereSubquerys,
+                    PredicateList wherePredicates) throws StandardException
 	{
-		for (int index = 0; index < size(); index++)
+        for (GroupByColumn gbc : this)
 		{
-			GroupByColumn	groupingCol = (GroupByColumn) elementAt(index);
-			groupingCol.setColumnExpression(
-					groupingCol.getColumnExpression().preprocess(
+            gbc.setColumnExpression(
+                    gbc.getColumnExpression().preprocess(
 							numTables, fromList, whereSubquerys, wherePredicates));
 		}		
 	}

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GroupByNode.java Fri Jun 28 04:32:08 2013
@@ -103,7 +103,7 @@ class GroupByNode extends SingleChildRes
 	private int		addDistinctAggregateColumnNum;
 
 	// Is the source in sorted order
-	private boolean isInSortedOrder;
+    final private boolean isInSortedOrder;
 
 	private ValueNode havingClause;
 	
@@ -201,23 +201,23 @@ class GroupByNode extends SingleChildRes
 			int index;
 			for (index = 0; index < glSize; index++)
 			{
-				GroupByColumn gc =
-						(GroupByColumn) this.groupingList.elementAt(index);
+                GroupByColumn gc = this.groupingList.elementAt(index);
 				if (gc.getColumnExpression() instanceof ColumnReference) 
 				{
 					crs[index] = (ColumnReference)gc.getColumnExpression();
 				} 
 				else 
 				{
-					isInSortedOrder = false;
 					break;
 				}
 				
 			}
-			if (index == glSize) {
-				isInSortedOrder = childResult.isOrderedOn(crs, true, (List<FromBaseTable>)null);
-			}
-		}
+
+            isInSortedOrder = (index == glSize) &&
+                childResult.isOrderedOn(crs, true, (List<FromBaseTable>)null);
+        } else {
+            isInSortedOrder = false;
+        }
 	}
 
 	/**
@@ -293,10 +293,9 @@ class GroupByNode extends SingleChildRes
 		** Get the new PR, put above the GroupBy.  
 		*/
         ResultColumnList rclNew = new ResultColumnList((getContextManager()));
-		int sz = resultColumns.size();
-		for (int i = 0; i < sz; i++) 
+
+        for (ResultColumn rc : resultColumns)
 		{
-			ResultColumn rc = (ResultColumn) resultColumns.elementAt(i);
 			if (!rc.isGenerated()) {
 				rclNew.addElement(rc);
 			}
@@ -350,10 +349,9 @@ class GroupByNode extends SingleChildRes
 		ArrayList<SubstituteExpressionVisitor> havingRefsToSubstitute = null;
 		if (havingClause != null)
 			havingRefsToSubstitute = new ArrayList<SubstituteExpressionVisitor>();
-		int sz = groupingList.size();
-		for (int i = 0; i < sz; i++) 
+
+        for (GroupByColumn gbc : groupingList)
 		{
-			GroupByColumn gbc = (GroupByColumn) groupingList.elementAt(i);
             ResultColumn newRC = new ResultColumn(
                     "##UnaggColumn",
 					gbc.getColumnExpression(),
@@ -780,14 +778,12 @@ class GroupByNode extends SingleChildRes
 			throws StandardException
 	{
 		// RESOLVE: NEED TO FACTOR IN THE COST OF GROUPING (SORTING) HERE
-		CostEstimate childCost = ((Optimizable) childResult).optimizeIt(
-													optimizer,
-													predList,
-													outerCost,
-													rowOrdering);
+        ((Optimizable) childResult).optimizeIt( optimizer,
+                                                predList,
+                                                outerCost,
+                                                rowOrdering);
 
-		CostEstimate retval = super.optimizeIt(
-												optimizer,
+        CostEstimate retval = super.optimizeIt( optimizer,
 												predList,
 												outerCost,
 												rowOrdering

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/HalfOuterJoinNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/HalfOuterJoinNode.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/HalfOuterJoinNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/HalfOuterJoinNode.java Fri Jun 28 04:32:08 2013
@@ -222,7 +222,7 @@ class HalfOuterJoinNode extends JoinNode
 		{
 			Predicate predicate;
 
-			predicate = (Predicate) joinPredicates.elementAt(index);
+            predicate = joinPredicates.elementAt(index);
 			if (! predicate.getPushable())
 			{
 				continue;

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/HasNodeVisitor.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/HasNodeVisitor.java?rev=1497644&r1=1497643&r2=1497644&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/HasNodeVisitor.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/HasNodeVisitor.java Fri Jun 28 04:32:08 2013
@@ -36,15 +36,15 @@ import org.apache.derby.iapi.sql.compile
 class HasNodeVisitor implements Visitor
 {
 	protected boolean hasNode;
-	private Class 	nodeClass;
-	private Class	skipOverClass;
+    private Class<?> nodeClass;
+    private Class<?> skipOverClass;
 	/**
 	 * Construct a visitor
 	 *
 	 * @param nodeClass the class of the node that 
 	 * 	we are looking for.
 	 */
-    HasNodeVisitor(Class nodeClass)
+    HasNodeVisitor(Class<?> nodeClass)
 	{
 		this.nodeClass = nodeClass;
 	}
@@ -57,7 +57,7 @@ class HasNodeVisitor implements Visitor
 	 * @param skipOverClass do not go below this
 	 * node when searching for nodeClass.
 	 */
-    HasNodeVisitor(Class nodeClass, Class skipOverClass)
+    HasNodeVisitor(Class<?> nodeClass, Class<?> skipOverClass)
 	{
 		this.nodeClass = nodeClass;
 		this.skipOverClass = skipOverClass;