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/13 02:07:57 UTC
svn commit: r627210 -
/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_4.java
Author: djd
Date: Tue Feb 12 17:07:46 2008
New Revision: 627210
URL: http://svn.apache.org/viewvc?rev=627210&view=rev
Log:
DERBY-2917 add upgrade test fixture for a routine that's created by 10.4 and executed by older releases
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_4.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_4.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_4.java?rev=627210&r1=627209&r2=627210&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_4.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_4.java Tue Feb 12 17:07:46 2008
@@ -26,10 +26,13 @@
import java.sql.Connection;
import java.sql.DatabaseMetaData;
+import java.sql.ParameterMetaData;
+import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.CallableStatement;
+import java.sql.Types;
import javax.sql.DataSource;
@@ -177,6 +180,50 @@
}
s.close();
+ }
+
+ /**
+ * Test that routine parameters and return types are
+ * handled correctly with 10.4 creating a procedure
+ * in soft-upgrade. 10.4 simplified the stored
+ * format of the types by ensuring the catalog
+ * type was written. See DERBY-2917 for details.
+ *
+ * @throws SQLException
+ *
+ */
+ public void testRoutineParameters() throws SQLException
+ {
+
+
+ switch (getPhase())
+ {
+ case PH_CREATE:
+ break;
+
+ case PH_SOFT_UPGRADE:
+ Statement s = createStatement();
+ s.execute("CREATE FUNCTION TYPES_10_4" +
+ "(A INTEGER) RETURNS CHAR(10) " +
+ "LANGUAGE JAVA " +
+ "PARAMETER STYLE JAVA " +
+ "NO SQL " +
+ "EXTERNAL NAME 'java.lang.Integer.toHexString'");
+ // fall through to test it
+
+ case PH_HARD_UPGRADE:
+ case PH_POST_SOFT_UPGRADE:
+ PreparedStatement ps = prepareStatement(
+ "VALUES TYPES_10_4(?)");
+ ps.setInt(1, 48879);
+ // Don't use the single value check method here
+ // because we want to check the returned value
+ // was converted to its correct type of CHAR(10)
+ // (so no trimming of values)
+ JDBC.assertFullResultSet(ps.executeQuery(),
+ new Object[][] {{"beef "}}, false);
+ break;
+ }
}
/**