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 dj...@apache.org on 2008/02/08 21:38:00 UTC

svn commit: r619995 - in /db/derby/code/trunk/java/engine/org/apache/derby: catalog/ catalog/types/ iapi/services/io/ iapi/types/ impl/sql/compile/

Author: djd
Date: Fri Feb  8 12:37:59 2008
New Revision: 619995

URL: http://svn.apache.org/viewvc?rev=619995&view=rev
Log:
DERBY-2917 Changed the runtime type DataTypeDescriptor to no longer be a TypeDescriptor (catalog type) but instead only have a catalog type (TypeDescriptor). Added code to handle upgrade issue of DataTypeDescriptor's being written as catalog types in RoutineAliasInfo.

Added:
    db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/OldRoutineType.java   (with props)
Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/catalog/TypeDescriptor.java
    db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/RoutineAliasInfo.java
    db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/TypesImplInstanceGetter.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/io/RegisteredFormatIds.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/io/StoredFormatIds.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/TypeId.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RoutineDesignator.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj

Modified: db/derby/code/trunk/java/engine/org/apache/derby/catalog/TypeDescriptor.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/catalog/TypeDescriptor.java?rev=619995&r1=619994&r2=619995&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/catalog/TypeDescriptor.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/catalog/TypeDescriptor.java Fri Feb  8 12:37:59 2008
@@ -53,11 +53,21 @@
     TypeDescriptor INTEGER = DataTypeDescriptor.INTEGER.getCatalogType();
 
     /**
+     * Catalog type for not nullable INTEGER
+     */
+    TypeDescriptor INTEGER_NOT_NULL =
+        DataTypeDescriptor.INTEGER_NOT_NULL.getCatalogType();
+    
+    /**
      * Catalog type for nullable SMALLINT
      */
-    TypeDescriptor SMALLINT = 
-        DataTypeDescriptor.getBuiltInDataTypeDescriptor(
-            Types.SMALLINT).getCatalogType();
+    TypeDescriptor SMALLINT = DataTypeDescriptor.SMALLINT.getCatalogType();
+    
+    /**
+     * Catalog type for not nullable INTEGER
+     */
+    TypeDescriptor SMALLINT_NOT_NULL =
+        DataTypeDescriptor.SMALLINT_NOT_NULL.getCatalogType();
 
 
 	///////////////////////////////////////////////////////////////////////

Added: db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/OldRoutineType.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/OldRoutineType.java?rev=619995&view=auto
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/OldRoutineType.java (added)
+++ db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/OldRoutineType.java Fri Feb  8 12:37:59 2008
@@ -0,0 +1,68 @@
+/*
+
+   Derby - Class org.apache.derby.catalog.types.OldRoutineType
+
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+ */
+package org.apache.derby.catalog.types;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.apache.derby.catalog.TypeDescriptor;
+import org.apache.derby.iapi.services.io.Formatable;
+import org.apache.derby.iapi.services.io.StoredFormatIds;
+import org.apache.derby.iapi.services.sanity.SanityManager;
+import org.apache.derby.iapi.types.TypeId;
+
+/**
+ * Class to simply read the old format written by
+ * DataTypeDescriptor prior to DERBY-2775 being addressed.
+ * The format was incorrect used
+ * in system catalogs for routine parameter and return
+ * types. The format contained repeated information.
+ * DERBY-2775 changed the code so that these catalog
+ * types were written as TypeDescriptor (which is what
+ * always had occurred for the types in SYSCOLUMNS).
+ */
+final class OldRoutineType implements Formatable {
+    
+    private TypeDescriptor catalogType;
+
+    public void readExternal(ObjectInput in) throws IOException,
+            ClassNotFoundException {
+        
+        in.readObject(); // Redundant TypeId object
+        catalogType = (TypeDescriptor) in.readObject();
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException {
+        if (SanityManager.DEBUG)
+        {
+            SanityManager.THROWASSERT("OldRoutineType must be read only!");
+        }
+    }
+
+    public int getTypeFormatId() {
+        return StoredFormatIds.DATA_TYPE_IMPL_DESCRIPTOR_V01_ID;
+    }
+
+    TypeDescriptor getCatalogType() {
+        return catalogType;
+    }
+}

Propchange: db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/OldRoutineType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/RoutineAliasInfo.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/RoutineAliasInfo.java?rev=619995&r1=619994&r2=619995&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/RoutineAliasInfo.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/RoutineAliasInfo.java Fri Feb  8 12:37:59 2008
@@ -161,7 +161,6 @@
 			}
 
 			if (returnType != null) {
-                SanityManager.ASSERT(!(returnType instanceof DataTypeDescriptor));
 				if (!((sqlAllowed >= RoutineAliasInfo.READS_SQL_DATA) && (sqlAllowed <= RoutineAliasInfo.NO_SQL))) {
 					SanityManager.THROWASSERT("Invalid sqlAllowed for FUNCTION " + methodName + " " + sqlAllowed);
 				}
@@ -244,7 +243,7 @@
 		parameterCount = in.readInt();
 		parameterStyle = in.readShort();
 		sqlAllowed = in.readShort();
-		returnType = (TypeDescriptor) in.readObject();
+		returnType = getStoredType(in.readObject());
 		calledOnNullInput = in.readBoolean();
 		in.readInt(); // future expansion.
 
@@ -253,7 +252,10 @@
 			parameterTypes = new TypeDescriptor[parameterCount];
 
 			ArrayUtil.readArrayItems(in, parameterNames);
-			ArrayUtil.readArrayItems(in, parameterTypes);
+            for (int p = 0; p < parameterTypes.length; p++)
+            {
+                parameterTypes[p] = getStoredType(in.readObject());
+            }
 			parameterModes = ArrayUtil.readIntArray(in);
 
 		} else {
@@ -262,6 +264,24 @@
 			parameterModes = null;
 		}
 	}
+    
+    /**
+     * Old releases (10.3 and before) wrote out the runtime
+     * DataTypeDescriptor for routine parameter and return types.
+     * 10.4 onwards (DERBY-2775) always writes out the catalog
+     * type TypeDescriptor. Here we see what object was read from
+     * disk and if it was the old type, now mapped to OldRoutineType,
+     * we extract the catalog type and use that.
+     * 
+     * @param onDiskType The object read that represents the type.
+     * @return
+     */
+    private static TypeDescriptor getStoredType(Object onDiskType)
+    {
+        if (onDiskType instanceof OldRoutineType)
+            return ((OldRoutineType) onDiskType).getCatalogType();
+        return (TypeDescriptor) onDiskType;
+    }
 
 	/**
 	 * Write this object to a stream of stored objects.

Modified: db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/TypesImplInstanceGetter.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/TypesImplInstanceGetter.java?rev=619995&r1=619994&r2=619995&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/TypesImplInstanceGetter.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/TypesImplInstanceGetter.java Fri Feb  8 12:37:59 2008
@@ -52,6 +52,8 @@
                           return new BaseTypeIdImpl(fmtId);
                   case StoredFormatIds.DECIMAL_TYPE_ID_IMPL:
                           return new DecimalTypeIdImpl(false);
+                  case StoredFormatIds.DATA_TYPE_SERVICES_IMPL_V01_ID:
+                      return new OldRoutineType();
                   default:
                         return null;
                 }

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/io/RegisteredFormatIds.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/io/RegisteredFormatIds.java?rev=619995&r1=619994&r2=619995&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/io/RegisteredFormatIds.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/io/RegisteredFormatIds.java Fri Feb  8 12:37:59 2008
@@ -292,7 +292,7 @@
         /* 237 */       null,
         /* 238 */       null,
         /* 239 */       null,
-        /* 240 */       null,
+        /* 240 */       "org.apache.derby.iapi.types.DataTypeDescriptor",
         /* 241 */       "org.apache.derby.impl.store.raw.data.InitPageOperation",
         /* 242 */       "org.apache.derby.impl.store.raw.data.ContainerOperation",
         /* 243 */       null,
@@ -311,7 +311,7 @@
         /* 256 */       "org.apache.derby.iapi.types.DTSClassInfo", //InstanceGetter
         /* 257 */       "org.apache.derby.iapi.types.DTSClassInfo", //InstanceGetter
         /* 258 */       "org.apache.derby.iapi.types.DTSClassInfo", //InstanceGetter
-        /* 259 */       "org.apache.derby.iapi.types.DataTypeDescriptor",
+        /* 259 */       "org.apache.derby.catalog.types.TypesImplInstanceGetter", // old catalog type format
         /* 260 */       "org.apache.derby.iapi.types.DTSClassInfo", //InstanceGetter
         /* 261 */       "org.apache.derby.impl.store.raw.xact.TransactionTableEntry",
         /* 262 */       "org.apache.derby.impl.store.raw.xact.TransactionTable",

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/io/StoredFormatIds.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/io/StoredFormatIds.java?rev=619995&r1=619994&r2=619995&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/io/StoredFormatIds.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/io/StoredFormatIds.java Fri Feb  8 12:37:59 2008
@@ -275,7 +275,16 @@
             (MIN_ID_2 + 14);
     
     /**
-            class com.ibm.db2j.protcol.Datatypes.Execution.DataTypeDescriptor
+     * In releases prior to 10.3 this format was produced by
+     * DataTypeDescriptor. The format was incorrect used
+     * in system catalogs for routine parameter and return
+     * types. The format contained repeated information.
+     * DERBY-2775 changed the code so that these catalog
+     * types were written as TypeDescriptor (which is what
+     * always had occurred for the types in SYSCOLUMNS).
+     * <P>
+     * This format now maps to OldRoutineType and is solely
+     * used to read old routine types.
      */
     static public final int DATA_TYPE_SERVICES_IMPL_V01_ID =
             (MIN_ID_2 + 259);
@@ -509,9 +518,13 @@
             (MIN_ID_2 + 239);
     
     /**
-    class org.apache.derby.impl.sql.catalog.ListOfRowListsImpl
+     * DataTypeDescriptor (runtime type) new format from 10.4
+     * onwards that reflects the change in role from is a TypeDescriptor
+     * to has a TypeDescriptor. Fixes the format so that information
+     * is not duplicated.
+     * Old format number was DATA_TYPE_SERVICES_IMPL_V01_ID (259).
      */
-    static public final int UNUSED_240 =
+    static public final int DATA_TYPE_DESCRIPTOR_V02_ID =
             (MIN_ID_2 + 240);
 
     /**

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java?rev=619995&r1=619994&r2=619995&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java Fri Feb  8 12:37:59 2008
@@ -49,9 +49,11 @@
  * <UL>
  * <LI> Collation Derivation
  * </UL>
+ * <P>
+ * A DataTypeDescriptor is immutable.
  */
 
-public final class DataTypeDescriptor implements TypeDescriptor, Formatable
+public final class DataTypeDescriptor implements Formatable
 {
 	/********************************************************
 	**
@@ -67,7 +69,30 @@
 	**
 	********************************************************/
     
-    public static final DataTypeDescriptor INTEGER = new DataTypeDescriptor(TypeId.INTEGER_ID, true);
+    /**
+     * Runtime INTEGER type that is nullable.
+     */
+    public static final DataTypeDescriptor INTEGER =
+        new DataTypeDescriptor(TypeId.INTEGER_ID, true);
+    
+    /**
+     * Runtime INTEGER type that is not nullable.
+     */
+    public static final DataTypeDescriptor INTEGER_NOT_NULL =
+        INTEGER.getNullabilityType(false);
+    
+    /**
+     * Runtime SMALLINT type that is nullable.
+     */
+    public static final DataTypeDescriptor SMALLINT =
+        new DataTypeDescriptor(TypeId.SMALLINT_ID, true);
+    
+    /**
+     * Runtime INTEGER type that is not nullable.
+     */
+    public static final DataTypeDescriptor SMALLINT_NOT_NULL =
+        SMALLINT.getNullabilityType(false);
+     
 
 	/*
 	** Static creators
@@ -78,6 +103,9 @@
      * to the maximum possible.
      * 
      * Collation type will be UCS_BASIC and derivation IMPLICIT.
+     * 
+     * For well known types code may also use the pre-defined
+     * runtime types that are fields of this class, such as INTEGER.
 	 *
 	 * @param jdbcType	The int type of the JDBC type for which to get
 	 *						a corresponding SQL DataTypeDescriptor
@@ -177,6 +205,12 @@
 
 	/**
 	 * Get a descriptor that corresponds to a builtin JDBC type.
+     * 
+     * For well known types code may also use the pre-defined
+     * runtime types that are fields of this class, such as INTEGER.
+     * E.g. using DataTypeDescriptor.INTEGER is preferred to
+     * DataTypeDescriptor.getBuiltInDataTypeDescriptor(Types.INTEGER, true)
+     * (both will return the same immutable object).
 	 *
 	 * @param jdbcType	The int type of the JDBC type for which to get
 	 *						a corresponding SQL DataTypeDescriptor
@@ -192,6 +226,18 @@
 		boolean	isNullable
 	)
 	{
+        // Re-use pre-defined types wherever possible.
+        switch (jdbcType)
+        {
+        case Types.INTEGER:
+            return isNullable ? INTEGER : INTEGER_NOT_NULL;
+        case Types.SMALLINT:
+            return isNullable ? SMALLINT : SMALLINT_NOT_NULL;
+        default:
+            break;
+        }
+
+        
 		TypeId typeId = TypeId.getBuiltInTypeId(jdbcType);
 		if (typeId == null)
 		{
@@ -950,14 +996,6 @@
 	}
 
 	/**
-	 * @see TypeDescriptor#getMaximumWidthInBytes
-	 */
-	public int	getMaximumWidthInBytes()
-	{
-		return typeDescriptor.getMaximumWidthInBytes();
-	}
-
-	/**
 	 * Gets the TypeId for the datatype.
 	 *
 	 * @return	The TypeId for the datatype.
@@ -1015,7 +1053,7 @@
 	 */
 	public int getJDBCTypeId()
 	{
-		return typeId.getJDBCTypeId();
+		return typeDescriptor.getJDBCTypeId();
 	}
 
 	/**
@@ -1715,13 +1753,11 @@
 	public void readExternal( ObjectInput in )
 		 throws IOException, ClassNotFoundException
 	{
-		/* NOTE: We only write out the generic type id.
-		 * typeId will be reset to be the generic type id
-		 * when we get read back in since the generic
-		 * one is all that is needed at execution time.
-		 */
-		typeId = (TypeId) in.readObject();
 		typeDescriptor = (TypeDescriptorImpl) in.readObject();
+        
+        typeId = TypeId.getBuiltInTypeId(this.getJDBCTypeId());
+        
+        collationDerivation = in.readInt();
 	}
 
 	/**
@@ -1734,8 +1770,8 @@
 	public void writeExternal( ObjectOutput out )
 		 throws IOException
 	{
-		out.writeObject( typeId );
-		out.writeObject( typeDescriptor );
+		out.writeObject(typeDescriptor);
+        out.writeInt(getCollationDerivation());
 	}
  
 	/**
@@ -1743,7 +1779,7 @@
 	 *
 	 *	@return	the formatID of this class
 	 */
-	public	int	getTypeFormatId()	{ return StoredFormatIds.DATA_TYPE_SERVICES_IMPL_V01_ID; }
+	public	int	getTypeFormatId()	{ return StoredFormatIds.DATA_TYPE_DESCRIPTOR_V02_ID; }
 
     /**
      * Check to make sure that this type id is something a user can create
@@ -1822,20 +1858,6 @@
             name = name + " (" + getCollationName() + ")";
         }
         return name;    
-    }
-
-    // TEMP: DERBY-2917 - refactoring type system
-    public String[] getRowColumnNames() {
-        if (SanityManager.DEBUG)
-            SanityManager.THROWASSERT("Row type must always be a catalog type");
-        return null;
-    }
-
-    // TEMP: DERBY-2917 - refactoring type system
-    public TypeDescriptor[] getRowTypes() {
-        if (SanityManager.DEBUG)
-            SanityManager.THROWASSERT("Row type must always be a catalog type");
-        return null;
     }
 }
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/TypeId.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/TypeId.java?rev=619995&r1=619994&r2=619995&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/TypeId.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/TypeId.java Fri Feb  8 12:37:59 2008
@@ -220,12 +220,22 @@
         ** Static runtime fields for typeIds
         ** These are put here because the system needs them init time.
         */
-        public static final TypeId              BOOLEAN_ID = new TypeId(StoredFormatIds.BOOLEAN_TYPE_ID,
-                                                                                                                        new BaseTypeIdImpl(StoredFormatIds.BOOLEAN_TYPE_ID_IMPL));
-        public static final TypeId              INTEGER_ID = new TypeId(StoredFormatIds.INT_TYPE_ID,
-                                                                                                                        new BaseTypeIdImpl(StoredFormatIds.INT_TYPE_ID_IMPL));
-        public static final TypeId              CHAR_ID = new TypeId(StoredFormatIds.CHAR_TYPE_ID,
-                                                                                                                 new BaseTypeIdImpl(StoredFormatIds.CHAR_TYPE_ID_IMPL));
+        public static final TypeId BOOLEAN_ID = new TypeId(
+            StoredFormatIds.BOOLEAN_TYPE_ID,
+               new BaseTypeIdImpl(StoredFormatIds.BOOLEAN_TYPE_ID_IMPL));
+        
+        public static final TypeId SMALLINT_ID = new TypeId(
+                StoredFormatIds.SMALLINT_TYPE_ID,
+                new BaseTypeIdImpl(StoredFormatIds.SMALLINT_TYPE_ID_IMPL));
+
+        public static final TypeId INTEGER_ID = new TypeId(
+            StoredFormatIds.INT_TYPE_ID,
+            new BaseTypeIdImpl(StoredFormatIds.INT_TYPE_ID_IMPL));
+
+        public static final TypeId CHAR_ID = new TypeId(
+            StoredFormatIds.CHAR_TYPE_ID,
+            new BaseTypeIdImpl(StoredFormatIds.CHAR_TYPE_ID_IMPL));
+        
         /*
         ** Others are created on demand by the getBuiltInTypeId(int),
         ** if they are built-in (i.e.? Part of JDBC .Types),
@@ -233,7 +243,7 @@
         */
 
         private static TypeId                   TINYINT_ID;
-        private static TypeId                   SMALLINT_ID;
+
         private static TypeId                   LONGINT_ID;
         private static TypeId                   REAL_ID;
         private static TypeId                   DOUBLE_ID;
@@ -288,11 +298,7 @@
                           break;
 
                   case Types.SMALLINT:
-                          ret = SMALLINT_ID;
-                          if (ret == null)
-                                  ret = SMALLINT_ID = new TypeId(StoredFormatIds.SMALLINT_TYPE_ID,
-                                                                        new BaseTypeIdImpl(StoredFormatIds.SMALLINT_TYPE_ID_IMPL));
-                          break;
+                          return SMALLINT_ID;
 
                   case Types.INTEGER:
                           return INTEGER_ID;
@@ -1269,7 +1275,7 @@
          */
         public String   toParsableString(DataTypeDescriptor dts)
         {
-                return  baseTypeId.toParsableString(dts);
+                return  baseTypeId.toParsableString(dts.getCatalogType());
         }
 
         /**

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RoutineDesignator.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RoutineDesignator.java?rev=619995&r1=619994&r2=619995&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RoutineDesignator.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RoutineDesignator.java Fri Feb  8 12:37:59 2008
@@ -32,7 +32,7 @@
 /**
  * This node represents a routine signature.
  */
-public class RoutineDesignator
+class RoutineDesignator
 {
 	boolean isSpecific;
 	TableName name; // TableName is a misnomer it is really just a schema qualified name
@@ -45,7 +45,7 @@
 	List paramTypeList;
 	AliasDescriptor aliasDescriptor;
 
-	public RoutineDesignator( boolean isSpecific,
+	RoutineDesignator( boolean isSpecific,
 							  TableName name,
 							  boolean isFunction,
 							  List paramTypeList)

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj?rev=619995&r1=619994&r2=619995&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj Fri Feb  8 12:37:59 2008
@@ -12825,8 +12825,7 @@
 RoutineDesignator routineDesignator() throws StandardException :
 {
     Token procOrFunction;
-    RoutineDesignator routine = null;
-    TableName name = null;
+    TableName name;
     List paramTypeList = null;
 }
 {
@@ -12845,19 +12844,19 @@
 /*
  * <A NAME="parameterTypeList">parameterTypeList</A>
  */
-List parameterTypeList( ) throws StandardException :
+List/*<TypeDescriptor>*/ parameterTypeList( ) throws StandardException :
 {
     ArrayList list = new ArrayList();
-    DataTypeDescriptor dtd;
+    TypeDescriptor type;
 }
 {
-    [ dtd = dataTypeCommon()
+    [ type = catalogType()
         {
-            list.add( dtd);
+            list.add(type);
         }
-      ( <COMMA> dtd = dataTypeCommon()
+      ( <COMMA> type = catalogType()
         {
-            list.add( dtd);
+            list.add(type);
         }
       ) * ]
     {