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 rh...@apache.org on 2006/04/20 00:28:40 UTC

svn commit: r395414 - in /db/derby/code/trunk/java: client/org/apache/derby/client/am/ engine/org/apache/derby/catalog/ engine/org/apache/derby/impl/jdbc/ engine/org/apache/derby/impl/sql/catalog/ shared/org/apache/derby/shared/common/reference/ testin...

Author: rhillegas
Date: Wed Apr 19 15:28:34 2006
New Revision: 395414

URL: http://svn.apache.org/viewcvs?rev=395414&view=rev
Log:
DERBY-925: Dyre's derby-925.v1.diff patch enabling new JDBC4 getFunctionParamaters() metadata method.

Added:
    db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/JDBC40Translation.java   (with props)
Modified:
    db/derby/code/trunk/java/client/org/apache/derby/client/am/DatabaseMetaData.java
    db/derby/code/trunk/java/engine/org/apache/derby/catalog/GetProcedureColumns.java
    db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData40.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/metadata.properties
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/TestDbMetaData.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_2.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/TestDbMetaData.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/metadata_test.java

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/am/DatabaseMetaData.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/client/org/apache/derby/client/am/DatabaseMetaData.java?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/am/DatabaseMetaData.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/am/DatabaseMetaData.java Wed Apr 19 15:28:34 2006
@@ -1100,7 +1100,6 @@
         return executeCatalogQuery(cs);
     }
 
-
     /** 
      * Get the function names available in the database.  Calls stored
      * procedure <code>SYSIBM.SQLFunctions(CatalogName
@@ -1177,6 +1176,93 @@
         return executeCatalogQuery(cs);
     }
 
+    /** 
+     * Get the function names available in the database.  Calls stored
+     * procedure <code>SYSIBM.SQLFunctionParams(CatalogName
+     * varchar(128), SchemaName varchar(128), FuncName varchar(128),
+     * ParamName varchar(128), Options varchar(4000))</code> on the
+     * server. This procedure will in turn call
+     * <code>EmbedDatabaseMetaData.getFunctionParameters(String,String,
+     * String,String)</code><p> Compatibility: Only available if both
+     * server and client version > 10.1, and JDK version >= 1.6. Older
+     * clients will not have this method available. Newer clients will
+     * be able to call this method when connected to an older server,
+     * but this will be trigger an exception in
+     * <code>checkServerJdbcVersionX()</code>. <p>Upgrade:
+     * <code>SYSIBM.SQLFunctionParams</code> is added in
+     * <code>DataDictionaryImpl.create_10_2_system_procedures
+     * (TransactionController,UUID)</code> so it will become available
+     * in newly created databases and after <b>hard</b> upgrade.
+     *
+     * @param catalog limit search to this catalog
+     * @param schemaPattern limit search to schemas matching this pattern
+     * @param functionNamePattern limit search to functions matching this 
+     * pattern
+     * @return a <code>ResultSet</code> listing the fucntions
+     * @exception SqlException if a database error occurs
+     * @see #getFunctionParametersX(String, String, String,String)
+     * @see org.apache.derby.impl.sql.catalog.DataDictionaryImpl#create_10_2_system_procedures(TransactionController,UUID)
+     * @see org.apache.derby.impl.jdbc.EmbedDatabaseMetaData#getFunctions(String,String,String)
+     */
+    public java.sql.ResultSet 
+        getFunctionParameters(String catalog,
+                              String schemaPattern,
+                              String functionNamePattern,
+                              String parameterNamePattern) 
+        throws SQLException {
+        try
+        {
+            synchronized (connection_) {
+                if (agent_.loggingEnabled()) {
+                    agent_.logWriter_.
+                        traceEntry(this, 
+                                   "getFunctionParameters", 
+                                   catalog, schemaPattern, 
+                                   functionNamePattern, parameterNamePattern);
+                }
+                return getFunctionParametersX(catalog, schemaPattern, 
+                                              functionNamePattern, 
+                                              parameterNamePattern);
+            }
+        }
+        catch ( SqlException se )
+        {
+            throw se.getSQLException();
+        }
+    }
+
+    /** 
+     * Untraced version of <code>getFunctionParameters(String, String,
+     * String, String)</code>.
+     * @param catalog limit search to this catalog
+     * @param schemaPattern limit search to schemas matching this pattern
+     * @param functionNamePattern limit search to functions matching this 
+     * pattern
+     * @param parameterNamePattern limit search to parameters mathing
+     * this pattern
+     * @return a <code>ResultSet</code> listing the fucntions
+     * @excption SqlException if a database error occurs
+     * @see #getFunctionParameters(String, String, String, String)
+     */
+    private ResultSet getFunctionParametersX(String catalog,
+                                             String schemaPattern,
+                                             String functionNamePattern,
+                                             String parameterNamePattern) 
+        throws SqlException {
+        checkForClosedConnectionX();
+        checkServerJdbcVersionX("getFunctionParameters"+
+                                "(String,String,String,String)", 4, 0);
+ 
+        PreparedStatement cs = 
+            prepareMetaDataQuery("SYSIBM.SQLFUNCTIONPARAMS(?,?,?,?,?)");
+
+        cs.setStringX(1, catalog);
+        cs.setStringX(2, schemaPattern);
+        cs.setStringX(3, functionNamePattern);
+        cs.setStringX(4, parameterNamePattern);
+        cs.setStringX(5, getOptions());
+        return executeCatalogQuery(cs);
+    }
 
     // call stored procedure SQLTables
     // SYSIBM.SQLTables(

Modified: db/derby/code/trunk/java/engine/org/apache/derby/catalog/GetProcedureColumns.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/catalog/GetProcedureColumns.java?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/catalog/GetProcedureColumns.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/catalog/GetProcedureColumns.java Wed Apr 19 15:28:34 2006
@@ -24,6 +24,7 @@
 import java.lang.reflect.*;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
+import java.sql.DatabaseMetaData;
 import org.apache.derby.catalog.TypeDescriptor;
 
 import org.apache.derby.iapi.types.DataTypeDescriptor;
@@ -32,6 +33,7 @@
 import org.apache.derby.impl.jdbc.EmbedResultSetMetaData;
 import org.apache.derby.catalog.types.RoutineAliasInfo;
 
+import org.apache.derby.shared.common.reference.JDBC40Translation;
 /**
     <P>Use of VirtualTableInterface to provide support for
     DatabaseMetaData.getProcedureColumns().
@@ -81,15 +83,36 @@
 
 public class GetProcedureColumns extends org.apache.derby.vti.VTITemplate 
 {
+	private boolean isFunction;
+	private int translate(int val) {
+		if (!isFunction) { return val; }
+		switch (val) {
+		case DatabaseMetaData.procedureColumnUnknown:
+			return JDBC40Translation.FUNCTION_PARAMETER_UNKNOWN;	
+		case DatabaseMetaData.procedureColumnIn:
+			return JDBC40Translation.FUNCTION_PARAMETER_IN;
+		case DatabaseMetaData.procedureColumnInOut:
+			return JDBC40Translation.FUNCTION_PARAMETER_INOUT;	
+		case DatabaseMetaData.procedureColumnOut:
+			return JDBC40Translation.FUNCTION_PARAMETER_OUT;
+		case DatabaseMetaData.procedureColumnReturn:
+			return JDBC40Translation.FUNCTION_RETURN;
+		default:
+			return JDBC40Translation.FUNCTION_PARAMETER_UNKNOWN;	
+		}
+    }
 
 	private boolean isProcedure;
 	// state for procedures.
 	private RoutineAliasInfo procedure;
-	private int paramCursor = -1;
+	private int paramCursor;
     private short method_count;
     private short param_number;
 
     private TypeDescriptor sqlType;
+    private String columnName;
+    private short columnType;
+    private final short nullable;
 
     public ResultSetMetaData getMetaData()
     {        
@@ -106,23 +129,41 @@
     {
 		// compile time aliasInfo will be null.
 		if (aliasInfo != null) {
-
 			isProcedure = aliasType.equals("P");
+			isFunction = aliasType.equals("F");
 			procedure = (RoutineAliasInfo) aliasInfo;
 			method_count = (short) procedure.getParameterCount();
 		}
+		if (aliasType == null) { 
+			nullable = 0;
+			return;
+		}
+
+		if (isFunction) {
+			nullable = (short) JDBC40Translation.FUNCTION_NULLABLE;
+			sqlType = procedure.getReturnType();
+			columnName = "";  // COLUMN_NAME is VARCHAR NOT NULL
+			columnType = (short) JDBC40Translation.FUNCTION_RETURN;
+			paramCursor = -2;
+			return;
+		}
+		nullable = (short) DatabaseMetaData.procedureNullable;
+
+		paramCursor = -1;
     }
 
     public boolean next() throws SQLException {
 		if (++paramCursor >= procedure.getParameterCount())
 			return false;
 
-		sqlType = procedure.getParameterTypes()[paramCursor];
-
+		if (paramCursor > -1) {
+			sqlType      = procedure.getParameterTypes()[paramCursor];
+			columnName   = procedure.getParameterNames()[paramCursor];
+			columnType   = 
+				(short)translate(procedure.getParameterModes()[paramCursor]);
+		}
 		param_number = (short) paramCursor;
-
 		return true;
-
 	}   
 
     //
@@ -136,7 +177,7 @@
         switch (column) 
         {
 		case 1: // COLUMN_NAME:
-				return procedure.getParameterNames()[paramCursor];
+			return columnName;
 
 		case 4: //_TYPE_NAME: 
                return sqlType.getTypeName();
@@ -198,7 +239,7 @@
         switch (column) 
         {
 		case 2: // COLUMN_TYPE:
-			return (short) (procedure.getParameterModes()[paramCursor]);
+			return columnType;
 
 		case 3: // DATA_TYPE:
                 if (sqlType != null)
@@ -229,8 +270,9 @@
                 // No corresponding SQL type
                 return 0;
 
+		//FIXME
 		case 9: // NULLABLE:
-                return (short)java.sql.DatabaseMetaData.procedureNullable;
+			return nullable;
 
 		case 11: // METHOD_ID: 
                 return method_count;

Modified: db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/catalog/SystemProcedures.java Wed Apr 19 15:28:34 2006
@@ -369,6 +369,36 @@
 				catalogName, schemaName, procName, paramName)
 			: getDMD().getProcedureColumns(catalogName, schemaName, procName, paramName);
 	}
+	
+	/**
+	 *  Map SQLFunctionParameters to
+	 *  EmbedDatabaseMetaData.getFunctionParameters()
+	 *
+	 * @param catalogName SYSIBM.SQLFunctionParameters CatalogName
+	 * varchar(128),
+	 * @param schemaName SYSIBM.SQLFunctionParameters SchemaName
+	 * varchar(128),
+	 * @param funcName SYSIBM.SQLFunctionParameters FuncName
+	 * varchar(128),
+	 * @param funcName SYSIBM.SQLFunctionParameters ParamName
+	 * varchar(128),
+	 * @param options SYSIBM.SQLFunctionParameters Options
+	 * varchar(4000))
+	 * @param rs output parameter, the resultset object containing the
+	 * result of getFunctionParameters(). 
+	 */
+	public static void SQLFUNCTIONPARAMS(String catalogName,
+										 String schemaName,
+										 String funcName,
+										 String paramName,
+										 String options,
+										 ResultSet[] rs) throws SQLException
+        {
+			rs[0] = ((EmbedDatabaseMetaData)getDMD()).
+				getFunctionParameters(catalogName, schemaName, funcName, 
+									  paramName);
+        }
+	
 
 	/**
 	 *  Map SQLColumns to EmbedDatabaseMetaData.getColumns

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java Wed Apr 19 15:28:34 2006
@@ -1546,6 +1546,48 @@
 			"odbc_getProcedureColumns");
 	}
 
+    /**
+     * Implements DatabaseMetaData.getFunctionParameters() for an embedded
+     * database. Queries the database to get information about
+     * function parameters. Executes the
+     * 'getFunctionParameters' query from metadata.properties to obtain the
+     * ResultSet.<p> Compatibility: This is a new method in
+     * the API which is only available with with Derby versions > 10.1 and
+     * JDK versions >= 1.6 <p>Upgrade: Since this is a new query it
+     * does not have an SPS, and will be available as soon as any
+     * database, new or old, is booted with the new version of Derby,
+     * (in <b>soft and hard</b> upgrade).
+     * @param catalog limit the search to functions in this catalog
+     * (not used)
+     * @param schemaPattern limit the search to functions in schemas
+     * matching this pattern
+     * @param functionNamePattern limit the search to functions
+     * matching this pattern
+     * @param parameterNamePattern limit the search parameters
+     * matching this pattern
+     * @return a ResultSet with metadata information
+     * @throws SQLException if a database error occurs
+     */
+	public ResultSet getFunctionParameters(String catalog,
+										   String schemaPattern,
+										   String functionNamePattern,
+										   String parameterNamePattern) 
+		throws SQLException {
+		PreparedStatement s = getPreparedQuery("getFunctionParameters");
+
+		// Cannot use doGetProcCols() because our query requires
+		// parameterNamePattern twice, because both LIKE and = is
+		// required to select parameters with an empty parameter
+		// name. That is, WHERE paramName LIKE ? will not match an
+		// empty paramName, but WHERE paramName LIKE ? OR paramName =
+		// ? will.
+		s.setString(1, swapNull(schemaPattern));
+		s.setString(2, swapNull(functionNamePattern));
+		s.setString(3, swapNull(parameterNamePattern));
+		s.setString(4, swapNull(parameterNamePattern));
+		return s.executeQuery();
+	}
+
 	/**
 	 * Does the actual work for the getProcedureColumns metadata
 	 * calls. See getProcedureColumns() method above for parameter

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData40.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData40.java?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData40.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData40.java Wed Apr 19 15:28:34 2006
@@ -69,15 +69,6 @@
     }
 
     
-    public ResultSet getFunctionParameters(java.lang.String catalog,
-                                java.lang.String schemaPattern,
-                                java.lang.String functionNamePattern,
-                                java.lang.String parameterNamePattern)
-                                throws SQLException
-    {
-        return getSimpleQuery("getFunctionParameters");
-    }
-    
     /**
      * Returns false unless <code>interfaces</code> is implemented 
      * 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/metadata.properties
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/metadata.properties?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/metadata.properties (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/metadata.properties Wed Apr 19 15:28:34 2006
@@ -1095,21 +1095,60 @@
 # Return an empty result set with the right shape.
 #
 getFunctionParameters=SELECT \
-        CAST(NULL AS VARCHAR(128)) AS FUNCTION_CAT, \
-        CAST(NULL AS VARCHAR(128)) AS FUNCTION_SCHEM, \
-        CAST(NULL AS VARCHAR(128)) AS PARAMETER_NAME, \
-        CAST(NULL AS SMALLINT) AS PARAMETER_TYPE, \
-        CAST(NULL AS INT) AS DATA_TYPE, \
-        CAST(NULL AS VARCHAR(128)) AS TYPE_NAME, \
-        CAST(NULL AS INT) AS PRECISION, \
-        CAST(NULL AS INT) AS LENGTH, \
-        CAST(NULL AS SMALLINT) AS SCALE, \
-        CAST(NULL AS SMALLINT) AS RADIX, \
-        CAST(NULL AS SMALLINT) AS NULLABLE, \
-        CAST(NULL AS VARCHAR(128)) AS REMARKS, \
-        CAST(NULL AS INT) AS CHAR_OCTET_LENGTH, \
-        CAST(NULL AS INT) AS ORDINAL_POSITION, \
-        CAST(NULL AS VARCHAR(128)) AS IS_NULLABLE, \
-        CAST(NULL AS VARCHAR(128)) AS SPECIFIC_NAME \
-    FROM SYSIBM.SYSDUMMY1 WHERE 1=0 WITH UR
-
+	CAST(NULL AS VARCHAR(128)) AS FUNCTION_CAT, \
+	S.SCHEMANAME       AS FUNCTION_SCHEM, \
+	A.ALIAS            AS FUNCTION_NAME, \
+	V."COLUMN_NAME"    AS PARAMETER_NAME, \
+	V."COLUMN_TYPE"    AS PARAMETER_TYPE, \
+	V."DATA_TYPE"      AS DATA_TYPE, \
+	V."TYPE_NAME"      AS TYPE_NAME, \
+	V."PRECISION"      AS PRECISION, \
+	V."LENGTH"         AS LENGTH, \
+  	CASE WHEN (V."DATA_TYPE" IN (java.sql.Types::DECIMAL, \
+ 		java.sql.Types::NUMERIC, java.sql.Types::INTEGER, \
+ 		java.sql.Types::SMALLINT, java.sql.Types::TINYINT, \
+ 		java.sql.Types::BIGINT, java.sql.Types::DATE, \
+ 		java.sql.Types::TIME, java.sql.Types::TIMESTAMP)) \
+	THEN \
+	V."SCALE" \
+	ELSE CAST (NULL AS SMALLINT) END \
+	AS SCALE, \
+ 	CASE WHEN (V."DATA_TYPE" IN (java.sql.Types::DECIMAL, \
+ 		java.sql.Types::NUMERIC, java.sql.Types::INTEGER, \
+ 		java.sql.Types::SMALLINT, java.sql.Types::TINYINT, \
+ 		java.sql.Types::BIGINT, java.sql.Types::DOUBLE, \
+ 		java.sql.Types::FLOAT, java.sql.Types::REAL, \
+ 		java.sql.Types::DATE, java.sql.Types::TIME, \
+ 		java.sql.Types::TIMESTAMP)) \
+	THEN V."RADIX" \
+	ELSE CAST (NULL AS SMALLINT) END AS RADIX, \
+   	V."NULLABLE"          AS NULLABLE, \
+	V."REMARKS"           AS REMARKS, \
+	CASE WHEN (V."DATA_TYPE" IN ( \
+		 java.sql.Types::CHAR, \
+		 java.sql.Types::VARCHAR, \
+		 java.sql.Types::BINARY, \
+		 java.sql.Types::VARBINARY)) \
+		 THEN V."LENGTH" \
+		 ELSE CAST(NULL AS INT) \
+	END AS CHAR_OCTET_LENGTH, \
+	CAST((V."PARAMETER_ID" + 1) AS INT) AS ORDINAL_POSITION, \
+	CAST(( \
+	CASE \
+		 WHEN V."NULLABLE" = java.sql.DatabaseMetaData::procedureNullable \
+		 THEN 'YES' ELSE 'NO' \
+	END) AS VARCHAR(128)) AS IS_NULLABLE, \
+	A.SPECIFICNAME        AS SPECIFIC_NAME, \
+	V."METHOD_ID"         AS METHOD_ID, \
+	V."PARAMETER_ID"      AS PARAMETER_ID \
+FROM \
+     SYS.SYSALIASES A, SYS.SYSSCHEMAS S, \
+     NEW org.apache.derby.catalog.GetProcedureColumns(A.ALIASINFO, \
+                                                      A.ALIASTYPE) V \
+WHERE \
+      A.ALIASTYPE = 'F' \
+      AND S.SCHEMANAME LIKE ? \
+      AND A.SCHEMAID = S.SCHEMAID \
+      AND A.ALIAS LIKE ? \
+      AND (V."COLUMN_NAME" LIKE ? OR V."COLUMN_NAME" = ?) \
+ORDER BY FUNCTION_SCHEM, FUNCTION_NAME, SPECIFIC_NAME, ORDINAL_POSITION

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java Wed Apr 19 15:28:34 2006
@@ -9702,6 +9702,38 @@
                 (TypeDescriptor) null,
                 tc);
         }
+
+        // SYSIBM.SQLFUNCTIONPARAMS(VARCHAR(128), VARCHAR(128),
+	// VARCHAR(128), VARCHAR(128), VARCHAR(4000))
+        {
+
+            // procedure argument names
+            String[] arg_names = {
+				"CATALOGNAME",
+				"SCHEMANAME",
+				"FUNCNAME",
+				"PARAMNAME",
+				"OPTIONS"};
+
+            // procedure argument types
+            TypeDescriptor[] arg_types = {
+				DataTypeDescriptor.getBuiltInDataTypeDescriptor(Types.VARCHAR, 128),
+				DataTypeDescriptor.getBuiltInDataTypeDescriptor(Types.VARCHAR, 128),
+				DataTypeDescriptor.getBuiltInDataTypeDescriptor(Types.VARCHAR, 128),
+				DataTypeDescriptor.getBuiltInDataTypeDescriptor(Types.VARCHAR, 128),
+				DataTypeDescriptor.getBuiltInDataTypeDescriptor(Types.VARCHAR, 4000)};
+
+            createSystemProcedureOrFunction(
+                "SQLFUNCTIONPARAMS",
+                getSysIBMSchemaDescriptor().getUUID(),
+                arg_names,
+                arg_types,
+				0,
+				1,
+                RoutineAliasInfo.READS_SQL_DATA,
+                (TypeDescriptor) null,
+                tc);
+        }
     }
 
 

Added: db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/JDBC40Translation.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/JDBC40Translation.java?rev=395414&view=auto
==============================================================================
--- db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/JDBC40Translation.java (added)
+++ db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/JDBC40Translation.java Wed Apr 19 15:28:34 2006
@@ -0,0 +1,54 @@
+/*
+
+   Derby - Class org.apache.derby.shared.common.reference.JDBC40Translation
+
+   Copyright 2001, 2004 The Apache Software Foundation or its licensors, as applicable.
+
+   Licensed 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.shared.common.reference;
+
+/**
+        This class contains public statics that map directly to the
+        new public statics in the jdbc 4.0 interfaces.  By providing
+        an intermediary class with hard-coded copies of constants that
+        will be available in jdbc 4.0, it becomes possible to refer to
+        these constants when compiling against older jdk versions. The
+        jdbc40 test suite (compiled against jdk16) contains tests that
+        verifies that these hard coded constants are in fact equal to
+        those found in jdk16.
+
+        <P>
+        This class should not be shipped with the product.
+
+        <P>
+        This class has no methods, all it contains are constants
+        are public, static and final since they are declared in an interface.
+*/
+
+public interface JDBC40Translation {
+    /*
+    ** public statics from 4.0 version of java.sql.DatabaseMetaData
+    */
+    public static final int FUNCTION_PARAMETER_UNKNOWN = 0;
+    public static final int FUNCTION_PARAMETER_IN      = 1;
+    public static final int FUNCTION_PARAMETER_INOUT   = 2;
+    public static final int FUNCTION_PARAMETER_OUT     = 3;
+    public static final int FUNCTION_RETURN            = 4;
+    
+    public static final int FUNCTION_NO_NULLS          = 0;
+    public static final int FUNCTION_NULLABLE          = 1;
+    public static final int FUNCTION_NULLABLE_UNKNOWN  = 2;
+}

Propchange: db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/JDBC40Translation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out Wed Apr 19 15:28:34 2006
@@ -73,6 +73,37 @@
 null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
 getFunctions("","",null):
 FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
+getFunctionParameters(null,null,null,null):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY2,Y,1,5,SMALLINT,5,2,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,SCHEMANAME,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,TABLENAME,1,12,VARCHAR,128,256,null,null,1,null,256,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,KEY,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,0,-1
+getFunctionParameters(null,"APP","DUMMY%","X"):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+getFunctionParameters(null,"APP","DUMMY%",""):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
 getUDTs() with user-named types null :
 TYPE_CAT[CHAR],TYPE_SCHEM[CHAR],TYPE_NAME[VARCHAR],CLASS_NAME[LONG VARCHAR],DATA_TYPE[INTEGER],REMARKS[CHAR]
 getUDTs() with user-named types in ('JAVA_OBJECT') :

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out Wed Apr 19 15:28:34 2006
@@ -73,6 +73,37 @@
 null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
 getFunctions("","",null):
 FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
+getFunctionParameters(null,null,null,null):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY2,Y,1,5,SMALLINT,5,2,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,SCHEMANAME,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,TABLENAME,1,12,VARCHAR,128,256,null,null,1,null,256,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,KEY,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,0,-1
+getFunctionParameters(null,"APP","DUMMY%","X"):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+getFunctionParameters(null,"APP","DUMMY%",""):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
 getUDTs() with user-named types null :
 TYPE_CAT[CHAR],TYPE_SCHEM[CHAR],TYPE_NAME[VARCHAR],CLASS_NAME[LONG VARCHAR],DATA_TYPE[INTEGER],REMARKS[CHAR]
 getUDTs() with user-named types in ('JAVA_OBJECT') :

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out Wed Apr 19 15:28:34 2006
@@ -103,6 +103,37 @@
 null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
 getFunctions("","",null):
 FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
+getFunctionParameters(null,null,null,null):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY2,Y,1,5,SMALLINT,5,2,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,SCHEMANAME,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,TABLENAME,1,12,VARCHAR,128,256,null,null,1,null,256,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,KEY,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,0,-1
+getFunctionParameters(null,"APP","DUMMY%","X"):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+getFunctionParameters(null,"APP","DUMMY%",""):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
 getUDTs() with user-named types null :
 TYPE_CAT[CHAR],TYPE_SCHEM[CHAR],TYPE_NAME[VARCHAR],CLASS_NAME[LONG VARCHAR],DATA_TYPE[INTEGER],REMARKS[CHAR]
 getUDTs() with user-named types in ('JAVA_OBJECT') :

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/TestDbMetaData.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/TestDbMetaData.out?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/TestDbMetaData.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/TestDbMetaData.out Wed Apr 19 15:28:34 2006
@@ -1,3 +1,11 @@
+true
+true
+true
+true
+true
+true
+true
+true
 FUNCTION_CAT,FUNCTION_SCHEM,FUNCTION_NAME,REMARKS,SPECIFIC_NAME
 null,APP,DUMMY1,java.some.func,xxxxGENERATED-IDxxxx
 null,APP,DUMMY2,java.some.func,xxxxGENERATED-IDxxxx
@@ -21,6 +29,23 @@
 FUNCTION_CAT,FUNCTION_SCHEM,FUNCTION_NAME,REMARKS,SPECIFIC_NAME
 null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
 null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+FUNCTION_CAT,FUNCTION_SCHEM,FUNCTION_NAME,PARAMETER_NAME,PARAMETER_TYPE,DATA_TYPE,TYPE_NAME,PRECISION,LENGTH,SCALE,RADIX,NULLABLE,REMARKS,CHAR_OCTET_LENGTH,ORDINAL_POSITION,IS_NULLABLE,SPECIFIC_NAME,METHOD_ID,PARAMETER_ID
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY2,Y,1,5,SMALLINT,5,2,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+FUNCTION_CAT,FUNCTION_SCHEM,FUNCTION_NAME,PARAMETER_NAME,PARAMETER_TYPE,DATA_TYPE,TYPE_NAME,PRECISION,LENGTH,SCALE,RADIX,NULLABLE,REMARKS,CHAR_OCTET_LENGTH,ORDINAL_POSITION,IS_NULLABLE,SPECIFIC_NAME,METHOD_ID,PARAMETER_ID
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
 TABLE_SCHEM,TABLE_CATALOG
 APP,null
 NULLID,null

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_2.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_2.out?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_2.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/Upgrade_10_1_10_2.out Wed Apr 19 15:28:34 2006
@@ -761,6 +761,37 @@
 null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
 getFunctions("","",null):
 FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
+getFunctionParameters(null,null,null,null):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY2,Y,1,5,SMALLINT,5,2,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,SCHEMANAME,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,TABLENAME,1,12,VARCHAR,128,256,null,null,1,null,256,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,KEY,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,0,-1
+getFunctionParameters(null,"APP","DUMMY%","X"):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+getFunctionParameters(null,"APP","DUMMY%",""):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
 getUDTs() with user-named types null :
 TYPE_CAT[CHAR],TYPE_SCHEM[CHAR],TYPE_NAME[VARCHAR],CLASS_NAME[LONG VARCHAR],DATA_TYPE[INTEGER],REMARKS[CHAR]
 getUDTs() with user-named types in ('JAVA_OBJECT') :
@@ -2118,6 +2149,37 @@
 null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
 getFunctions("","",null):
 FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
+getFunctionParameters(null,null,null,null):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY2,Y,1,5,SMALLINT,5,2,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,SCHEMANAME,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,TABLENAME,1,12,VARCHAR,128,256,null,null,1,null,256,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,KEY,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,0,-1
+getFunctionParameters(null,"APP","DUMMY%","X"):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+getFunctionParameters(null,"APP","DUMMY%",""):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
 getUDTs() with user-named types null :
 TYPE_CAT[CHAR],TYPE_SCHEM[CHAR],TYPE_NAME[VARCHAR],CLASS_NAME[LONG VARCHAR],DATA_TYPE[INTEGER],REMARKS[CHAR]
 getUDTs() with user-named types in ('JAVA_OBJECT') :

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out Wed Apr 19 15:28:34 2006
@@ -73,6 +73,37 @@
 null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
 getFunctions("","",null):
 FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
+getFunctionParameters(null,null,null,null):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY2,Y,1,5,SMALLINT,5,2,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,SCHEMANAME,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,TABLENAME,1,12,VARCHAR,128,256,null,null,1,null,256,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,KEY,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,0,-1
+getFunctionParameters(null,"APP","DUMMY%","X"):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+getFunctionParameters(null,"APP","DUMMY%",""):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
 getUDTs() with user-named types null :
 TYPE_CAT[CHAR],TYPE_SCHEM[CHAR],TYPE_NAME[VARCHAR],CLASS_NAME[LONG VARCHAR],DATA_TYPE[INTEGER],REMARKS[CHAR]
 getUDTs() with user-named types in ('JAVA_OBJECT') :

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out Wed Apr 19 15:28:34 2006
@@ -103,6 +103,37 @@
 null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
 getFunctions("","",null):
 FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
+getFunctionParameters(null,null,null,null):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY2,Y,1,5,SMALLINT,5,2,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,Y,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,SCHEMANAME,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,SYSCS_UTIL,SYSCS_CHECK_TABLE,TABLENAME,1,12,VARCHAR,128,256,null,null,1,null,256,2,YES,xxxxGENERATED-IDxxxx,2,1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,KEY,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,0,-1
+getFunctionParameters(null,"APP","DUMMY%","X"):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,APP,DUMMY2,X,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY3,X,1,12,VARCHAR,16,32,null,null,1,null,32,1,YES,xxxxGENERATED-IDxxxx,2,0
+null,APP,DUMMY4,X,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,2,0
+getFunctionParameters(null,"APP","DUMMY%",""):
+FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],PARAMETER_NAME[VARCHAR],PARAMETER_TYPE[SMALLINT],DATA_TYPE[SMALLINT],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
+null,APP,DUMMY1,,4,5,SMALLINT,5,2,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,APP,DUMMY2,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY3,,4,12,VARCHAR,16,32,null,null,1,null,32,0,YES,xxxxGENERATED-IDxxxx,2,-1
+null,APP,DUMMY4,,4,4,INTEGER,10,4,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,2,-1
 getUDTs() with user-named types null :
 TYPE_CAT[CHAR],TYPE_SCHEM[CHAR],TYPE_NAME[VARCHAR],CLASS_NAME[LONG VARCHAR],DATA_TYPE[INTEGER],REMARKS[CHAR]
 getUDTs() with user-named types in ('JAVA_OBJECT') :

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/TestDbMetaData.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/TestDbMetaData.java?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/TestDbMetaData.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/TestDbMetaData.java Wed Apr 19 15:28:34 2006
@@ -30,6 +30,7 @@
 
 import org.apache.derby.tools.ij;
 import org.apache.derbyTesting.functionTests.util.SQLStateConstants;
+import org.apache.derby.shared.common.reference.JDBC40Translation;
 
 /**
  * Test of database metadata for new methods in JDBC 40.
@@ -98,6 +99,35 @@
             dumpSQLExceptions(e);
         }
 
+		// Make sure the constants provided in JDBC40Translation is correct
+
+		// Uncomment this when jdk16 contains functionParameterUnknown
+//  		System.out.println(""+(JDBC40Translation.FUNCTION_PARAMETER_UNKNOWN == 
+// 							   DatabaseMetaData.functionParameterUnknown));
+		System.out.println(""+(JDBC40Translation.FUNCTION_PARAMETER_IN == 
+							   DatabaseMetaData.functionParameterIn));
+		System.out.println(""+(JDBC40Translation.FUNCTION_PARAMETER_INOUT == 
+							   DatabaseMetaData.functionParameterInOut));
+		System.out.println(""+(JDBC40Translation.FUNCTION_PARAMETER_OUT == 
+							   DatabaseMetaData.functionParameterOut));
+		System.out.println(""+(JDBC40Translation.FUNCTION_RETURN == 
+							   DatabaseMetaData.functionReturn));
+    
+		System.out.println(""+(JDBC40Translation.FUNCTION_NO_NULLS ==
+							   DatabaseMetaData.functionNoNulls));
+		System.out.println(""+(JDBC40Translation.FUNCTION_NULLABLE ==
+							   DatabaseMetaData.functionNullable));
+		System.out.println(""+(JDBC40Translation.FUNCTION_NULLABLE_UNKNOWN ==
+							   DatabaseMetaData.functionNullableUnknown));
+
+		// Since JDBC40Translation cannot be accessed in queries in
+		// metadata.properties, the query has to use
+		// DatabaseMetaData.procedureNullable. Hence it is necessary
+		// to verify that that value of
+		// DatabaseMetaData.functionNullable is the same.
+		System.out.println(""+(DatabaseMetaData.functionNullable == 
+							   DatabaseMetaData.procedureNullable));
+		
         // Create some functions in the default schema (app) to make
         // the output from getFunctions() and getFunctionParameters
         // more interesting
@@ -114,19 +144,6 @@
                   "RETURNS INTEGER PARAMETER STYLE JAVA NO SQL LANGUAGE "+
                   "JAVA EXTERNAL NAME 'java.some.func'");
 
-        try {
-			checkEmptyRS(met.getFunctionParameters(null,null,null,null));
-        } catch (SQLException e) {
-            // TODO: remove try/catch once method is implemented!
-            System.out.println("getFunctionParameters():");
-            dumpSQLExceptions(e);
-        } catch (AbstractMethodError ame) {
-            // TODO: No implementation on client yet, so catch
-            // AbstractMethodError for now. Remove when implemented.
-            System.out.println("getFunctionParameters():");
-            ame.printStackTrace(System.out);
-        }
-
         // Any function in any schema in any catalog
         dumpRS(met.getFunctions(null, null, null));
         // Any function in any schema in "Dummy
@@ -142,6 +159,13 @@
         // NO catalog (none)
         checkEmptyRS(met.getFunctions("", "", null));
 
+		// Test getFunctionParameters
+		// Dump parameters for all functions beigging with DUMMY
+		dumpRS(met.getFunctionParameters(null,null,"DUMMY%",null));
+		
+		// Dump return value for all DUMMY functions
+		dumpRS(met.getFunctionParameters(null,null,"DUMMY%",""));
+	  
         try {
             // 
             // Test the new getSchemas() with no schema qualifiers

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/metadata_test.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/metadata_test.java?rev=395414&r1=395413&r2=395414&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/metadata_test.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/metadata_test.java Wed Apr 19 15:28:34 2006
@@ -422,15 +422,15 @@
 			// the current version of Derby
 			try {
 				Class s = "".getClass();
-				Class [] a = new Class [] { s, s, s };
 				
 				// Make sure the method is actually implemented
 				java.lang.reflect.Method gf = 
-					met.getClass().getMethod("getFunctions", a);
+					met.getClass().getMethod("getFunctions", 
+											 new Class [] { s, s, s });
 				if (!java.lang.reflect.Modifier.isAbstract(gf.getModifiers())){
 					// Any function in any schema in any catalog
 					System.out.println("getFunctions(null,null,null):");
-					dumpRS(0, (ResultSet)gf.
+					dumpRS(IGNORE_PROC_ID, (ResultSet)gf.
 						   invoke(met, new String [] {null, null, null}));
 
 					// Any function in any schema in "Dummy
@@ -438,30 +438,62 @@
 					// argument is ignored (is always null)
 					System.out.println("getFunctions(\"Dummy Catalog\",null,"+
 									   "null):");
-					dumpRS(0, (ResultSet)gf.
+					dumpRS(IGNORE_PROC_ID, (ResultSet)gf.
 						   invoke(met, new String [] {"Dummy Catalog", 
 													  null, null}));
 
 					// Any function in a schema starting with "SYS"
 					System.out.println("getFunctions(null,\"%SYS%\",null):");
-					dumpRS(0, (ResultSet)gf.
+					dumpRS(IGNORE_PROC_ID, (ResultSet)gf.
 						   invoke(met, new String [] {null, "SYS%", null}));
 
 					// All functions containing "GET" in any schema
 					// (and any catalog)
 					System.out.println("getFunctions(null,null,\"%GET%\"):");
-					dumpRS(0, (ResultSet)gf.
+					dumpRS(IGNORE_PROC_ID, (ResultSet)gf.
 						   invoke(met, new String [] {null, null, "%GET%"}));
 
 					// Any function that belongs to NO schema and
 					// NO catalog (none)
 					System.out.println("getFunctions(\"\",\"\",null):");
-					dumpRS(0, (ResultSet)gf.
+					dumpRS(IGNORE_PROC_ID, (ResultSet)gf.
 						   invoke(met, new String [] {"", "", null}));
 
 				}
+				
+				// Test getFunctionParameters(String,String,String,String)
+				java.lang.reflect.Method gfp = 
+					met.getClass().getMethod("getFunctionParameters", 
+											 new Class [] { s, s, s, s });
+
+				if (!java.lang.reflect.Modifier.
+					isAbstract(gfp.getModifiers())){
+					System.out.println("getFunctionParameters(null,"+
+									   "null,null,null):");
+					dumpRS(IGNORE_PROC_ID, (ResultSet)gfp.
+						   invoke(met, 
+								  new String [] {null, null, null, null}));
+
+					System.out.println("getFunctionParameters(null,\"APP\","+
+									   "\"DUMMY%\",\"X\"):");
+					dumpRS(IGNORE_PROC_ID, (ResultSet)gfp.
+						   invoke(met, 
+								  new String [] {null, "APP", "DUMMY%", "X"}));
+
+					System.out.println("getFunctionParameters(null,\"APP\","+
+									   "\"DUMMY%\",\"\"):");
+					dumpRS(IGNORE_PROC_ID, (ResultSet)gfp.
+						   invoke(met, 
+								  new String [] {null, "APP", "DUMMY%", ""}));
+
+				}
 			} 
-			catch (NoSuchMethodException e) {}
+			catch (NoSuchMethodException e) {
+				if (org.apache.derby.iapi.services.info.JVMInfo.JDK_ID >= 
+					org.apache.derby.iapi.services.info.JVMInfo.J2SE_16) {
+					e.printStackTrace();
+				}
+			}
 			catch (Exception e) { e.printStackTrace(); }
 
 			System.out.println("getUDTs() with user-named types null :");