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 km...@apache.org on 2007/03/15 17:04:24 UTC
svn commit: r518672 - in
/db/derby/code/trunk/java/testing/org/apache/derbyTesting:
functionTests/tests/lang/NullIfTest.java junit/JDBC.java
Author: kmarsden
Date: Thu Mar 15 09:04:22 2007
New Revision: 518672
URL: http://svn.apache.org/viewvc?view=rev&rev=518672
Log:
DERBY-2452 (partial) move createAndPopulateAllDataTypesTable to JDBC so it can
be used by multiple tests.
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/NullIfTest.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/JDBC.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/NullIfTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/NullIfTest.java?view=diff&rev=518672&r1=518671&r2=518672
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/NullIfTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/NullIfTest.java Thu Mar 15 09:04:22 2007
@@ -35,60 +35,13 @@
import org.apache.derbyTesting.junit.BaseJDBCTestCase;
import org.apache.derbyTesting.junit.CleanDatabaseTestSetup;
+import org.apache.derbyTesting.junit.JDBC;
import org.apache.derbyTesting.junit.TestConfiguration;
import org.apache.derbyTesting.functionTests.tests.lang.CastingTest;
public class NullIfTest extends BaseJDBCTestCase {
-
- private static String VALID_DATE_STRING = "'2000-01-01'";
- private static String VALID_TIME_STRING = "'15:30:20'";
- private static String VALID_TIMESTAMP_STRING = "'2000-01-01 15:30:20'";
- private static String NULL_VALUE="NULL";
-
- private static String[] ColumnNames =
- {
- "SMALLINTCOL",
- "INTEGERCOL",
- "BIGINTCOL",
- "DECIMALCOL",
- "REALCOL",
- "DOUBLECOL",
- "CHARCOL",
- "VARCHARCOL",
- "LONGVARCHARCOL",
- "CHARFORBITCOL",
- "VARCHARFORBITCOL",
- "LVARCHARFORBITCOL",
- "CLOBCOL",
- "DATECOL",
- "TIMECOL",
- "TIMESTAMPCOL",
- "BLOBCOL",
-
- };
-
- private static String[][]SQLData =
- {
- {NULL_VALUE, "0","1","2"}, // SMALLINT
- {NULL_VALUE,"0","1","21"}, // INTEGER
- {NULL_VALUE,"0","1","22"}, // BIGINT
- {NULL_VALUE,"0.0","1.0","23.0"}, // DECIMAL(10,5)
- {NULL_VALUE,"0.0","1.0","24.0"}, // REAL,
- {NULL_VALUE,"0.0","1.0","25.0"}, // DOUBLE
- {NULL_VALUE,"'0'","'aa'","'2.0'"}, // CHAR(60)
- {NULL_VALUE,"'0'","'aa'",VALID_TIME_STRING}, //VARCHAR(60)",
- {NULL_VALUE,"'0'","'aa'",VALID_TIMESTAMP_STRING}, // LONG VARCHAR
- {NULL_VALUE,"X'10aa'",NULL_VALUE,"X'10aaaa'"}, // CHAR(60) FOR BIT DATA
- {NULL_VALUE,"X'10aa'",NULL_VALUE,"X'10aaba'"}, // VARCHAR(60) FOR BIT DATA
- {NULL_VALUE,"X'10aa'",NULL_VALUE,"X'10aaca'"}, //LONG VARCHAR FOR BIT DATA
- {NULL_VALUE,"'13'","'14'",NULL_VALUE}, //CLOB(1k)
- {NULL_VALUE,VALID_DATE_STRING,VALID_DATE_STRING,NULL_VALUE}, // DATE
- {NULL_VALUE,VALID_TIME_STRING,VALID_TIME_STRING,VALID_TIME_STRING}, // TIME
- {NULL_VALUE,VALID_TIMESTAMP_STRING,VALID_TIMESTAMP_STRING,VALID_TIMESTAMP_STRING}, // TIMESTAMP
- {NULL_VALUE,NULL_VALUE,NULL_VALUE,NULL_VALUE} // BLOB
- };
-
+
private static String[][][] nullIfResults ={
/*SMALLINT*/ {/*SMALLINT*/ {null,null,null,null},/*INTEGER*/ {null,null,null,"2"},/*BIGINT*/ {null,null,null,"2"},/*DECIMAL(10,5)*/ {null,null,null,"2"},/*REAL*/ {null,null,null,"2"},/*DOUBLE*/ {null,null,null,"2"},/*CHAR(60)*/ {"Exception","Exception","Exception","Exception"},/*VARCHAR(60)*/ {"Exception","Exception","Exception","Exception"},/*LONG VARCHAR*/ {"Exception","Exception","Exception","Exception"},/*CHAR(60) FOR BIT DATA*/ {"Exception","Exception","Exception","Exception"},/*VARCHAR(60) FOR BIT DATA*/ {"Exception","Exception","Exception","Exception"},/*LONG VARCHAR FOR BIT DATA*/ {"Exception","Exception","Exception","Exception"},/*CLOB(1k)*/ {"Exception","Exception","Exception","Exception"},/*DATE*/ {"Exception","Exception","Exception","Exception"},/*TIME*/ {"Exception","Exception","Exception","Exception"},/*TIMESTAMP*/ {"Exception","Exception","Exception","Exception"},/*BLOB(1k)*/ {"Exception","Exception","Exception","Exception"}},
/*INTEGER*/ {/*SMALLINT*/ {null,null,null,"21"},/*INTEGER*/ {null,null,null,null},/*BIGINT*/ {null,null,null,"21"},/*DECIMAL(10,5)*/ {null,null,null,"21"},/*REAL*/ {null,null,null,"21"},/*DOUBLE*/ {null,null,null,"21"},/*CHAR(60)*/ {"Exception","Exception","Exception","Exception"},/*VARCHAR(60)*/ {"Exception","Exception","Exception","Exception"},/*LONG VARCHAR*/ {"Exception","Exception","Exception","Exception"},/*CHAR(60) FOR BIT DATA*/ {"Exception","Exception","Exception","Exception"},/*VARCHAR(60) FOR BIT DATA*/ {"Exception","Exception","Exception","Exception"},/*LONG VARCHAR FOR BIT DATA*/ {"Exception","Exception","Exception","Exception"},/*CLOB(1k)*/ {"Exception","Exception","Exception","Exception"},/*DATE*/ {"Exception","Exception","Exception","Exception"},/*TIME*/ {"Exception","Exception","Exception","Exception"},/*TIMESTAMP*/ {"Exception","Exception","Exception","Exception"},/*BLOB(1k)*/ {"Exception","Exception","Exception","Exception"}},
@@ -190,14 +143,14 @@
for (int firstColumnType = 0; firstColumnType < CastingTest.SQLTypes.length; firstColumnType++) {
StringBuffer nullIfString = new StringBuffer("SELECT NULLIF("
- + ColumnNames[firstColumnType]);
+ + JDBC.allDataTypesColumnNames[firstColumnType]);
for (int secondColumnType = 0; secondColumnType < CastingTest.SQLTypes.length; secondColumnType++) {
int row = 0;
try {
StringBuffer completeNullIfString = new StringBuffer(
nullIfString.toString() + ","
- + ColumnNames[secondColumnType]);
+ + JDBC.allDataTypesColumnNames[secondColumnType]);
ResultSet rs = s.executeQuery(completeNullIfString
+ ") from AllDataTypesTable");
while (rs.next()) {
@@ -248,7 +201,7 @@
for (int secondColumnType = 0; secondColumnType < CastingTest.SQLTypes.length; secondColumnType++) {
String nullIfString = new String("SELECT NULLIF(?,"
- + ColumnNames[secondColumnType]
+ + JDBC.allDataTypesColumnNames[secondColumnType]
+ ") from AllDataTypesTable");
int row = 0;
try {
@@ -350,34 +303,10 @@
*
*/
protected void decorateSQL(Statement s) throws SQLException {
- try {
- s.executeUpdate("DROP TABLE AllDataTypesTable");
- } catch (SQLException se) {
- }
-
- StringBuffer createSQL = new StringBuffer(
- "create table AllDataTypesTable (");
- for (int type = 0; type < CastingTest.SQLTypes.length - 1; type++) {
- createSQL.append(ColumnNames[type] + " " + CastingTest.SQLTypes[type]
- + ",");
- }
- createSQL.append(ColumnNames[CastingTest.SQLTypes.length - 1] + " "
- + CastingTest.SQLTypes[CastingTest.SQLTypes.length - 1] + ")");
- s.executeUpdate(createSQL.toString());
-
- for (int row = 0; row < SQLData[0].length; row++) {
- createSQL = new StringBuffer(
- "insert into AllDataTypesTable values(");
- for (int type = 0; type < CastingTest.SQLTypes.length - 1; type++) {
- createSQL.append(SQLData[type][row] + ",");
- }
- createSQL.append(SQLData[CastingTest.SQLTypes.length - 1][row] + ")");
-
- s.executeUpdate(createSQL.toString());
- }
-
- s.close();
+ JDBC.createAndPopulateAllDataTypesTable(s);
}
+
+
};
}
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/JDBC.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/JDBC.java?view=diff&rev=518672&r1=518671&r2=518672
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/JDBC.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/JDBC.java Thu Mar 15 09:04:22 2007
@@ -28,6 +28,7 @@
import java.util.ListIterator;
import org.apache.derby.iapi.reference.JDBC30Translation;
+import org.apache.derbyTesting.functionTests.tests.lang.CastingTest;
import junit.framework.Assert;
@@ -839,39 +840,121 @@
* @param jdbcType jdbc type to translate
*/
public static String sqlNameFromJdbc(int jdbcType) {
- switch (jdbcType) {
- case Types.BIT : return "Types.BIT";
- case JDBC30Translation.SQL_TYPES_BOOLEAN : return "Types.BOOLEAN";
- case Types.TINYINT : return "Types.TINYINT";
- case Types.SMALLINT : return "SMALLINT";
- case Types.INTEGER : return "INTEGER";
- case Types.BIGINT : return "BIGINT";
-
- case Types.FLOAT : return "Types.FLOAT";
- case Types.REAL : return "REAL";
- case Types.DOUBLE : return "DOUBLE";
-
- case Types.NUMERIC : return "Types.NUMERIC";
- case Types.DECIMAL : return "DECIMAL";
-
- case Types.CHAR : return "CHAR";
- case Types.VARCHAR : return "VARCHAR";
- case Types.LONGVARCHAR : return "LONG VARCHAR";
- case Types.CLOB : return "CLOB";
-
- case Types.DATE : return "DATE";
- case Types.TIME : return "TIME";
- case Types.TIMESTAMP : return "TIMESTAMP";
-
- case Types.BINARY : return "CHAR () FOR BIT DATA";
- case Types.VARBINARY : return "VARCHAR () FOR BIT DATA";
- case Types.LONGVARBINARY : return "LONG VARCHAR FOR BIT DATA";
- case Types.BLOB : return "BLOB";
-
- case Types.OTHER : return "Types.OTHER";
- case Types.NULL : return "Types.NULL";
- default : return String.valueOf(jdbcType);
+ switch (jdbcType) {
+ case Types.BIT : return "Types.BIT";
+ case Types.BOOLEAN : return "Types.BOOLEAN";
+ case Types.TINYINT : return "Types.TINYINT";
+ case Types.SMALLINT : return "SMALLINT";
+ case Types.INTEGER : return "INTEGER";
+ case Types.BIGINT : return "BIGINT";
+
+ case Types.FLOAT : return "Types.FLOAT";
+ case Types.REAL : return "REAL";
+ case Types.DOUBLE : return "DOUBLE";
+
+ case Types.NUMERIC : return "Types.NUMERIC";
+ case Types.DECIMAL : return "DECIMAL";
+
+ case Types.CHAR : return "CHAR";
+ case Types.VARCHAR : return "VARCHAR";
+ case Types.LONGVARCHAR : return "LONG VARCHAR";
+ case Types.CLOB : return "CLOB";
+
+ case Types.DATE : return "DATE";
+ case Types.TIME : return "TIME";
+ case Types.TIMESTAMP : return "TIMESTAMP";
+
+ case Types.BINARY : return "CHAR () FOR BIT DATA";
+ case Types.VARBINARY : return "VARCHAR () FOR BIT DATA";
+ case Types.LONGVARBINARY: return "LONG VARCHAR FOR BIT DATA";
+ case Types.BLOB : return "BLOB";
+
+ case Types.OTHER : return "Types.OTHER";
+ case Types.NULL : return "Types.NULL";
+ default : return String.valueOf(jdbcType);
}
}
+ public static String VALID_DATE_STRING = "'2000-01-01'";
+ public static String VALID_TIME_STRING = "'15:30:20'";
+ public static String VALID_TIMESTAMP_STRING = "'2000-01-01 15:30:20'";
+ public static String NULL_VALUE="NULL";
+
+ public static String[] allDataTypesColumnNames =
+ {
+ "SMALLINTCOL",
+ "INTEGERCOL",
+ "BIGINTCOL",
+ "DECIMALCOL",
+ "REALCOL",
+ "DOUBLECOL",
+ "CHARCOL",
+ "VARCHARCOL",
+ "LONGVARCHARCOL",
+ "CHARFORBITCOL",
+ "VARCHARFORBITCOL",
+ "LVARCHARFORBITCOL",
+ "CLOBCOL",
+ "DATECOL",
+ "TIMECOL",
+ "TIMESTAMPCOL",
+ "BLOBCOL",
+
+ };
+
+ private static String[][]allDataTypesSQLData =
+ {
+ {NULL_VALUE, "0","1","2"}, // SMALLINT
+ {NULL_VALUE,"0","1","21"}, // INTEGER
+ {NULL_VALUE,"0","1","22"}, // BIGINT
+ {NULL_VALUE,"0.0","1.0","23.0"}, // DECIMAL(10,5)
+ {NULL_VALUE,"0.0","1.0","24.0"}, // REAL,
+ {NULL_VALUE,"0.0","1.0","25.0"}, // DOUBLE
+ {NULL_VALUE,"'0'","'aa'","'2.0'"}, // CHAR(60)
+ {NULL_VALUE,"'0'","'aa'",VALID_TIME_STRING}, //VARCHAR(60)",
+ {NULL_VALUE,"'0'","'aa'",VALID_TIMESTAMP_STRING}, // LONG VARCHAR
+ {NULL_VALUE,"X'10aa'",NULL_VALUE,"X'10aaaa'"}, // CHAR(60) FOR BIT DATA
+ {NULL_VALUE,"X'10aa'",NULL_VALUE,"X'10aaba'"}, // VARCHAR(60) FOR BIT DATA
+ {NULL_VALUE,"X'10aa'",NULL_VALUE,"X'10aaca'"}, //LONG VARCHAR FOR BIT DATA
+ {NULL_VALUE,"'13'","'14'",NULL_VALUE}, //CLOB(1k)
+ {NULL_VALUE,VALID_DATE_STRING,VALID_DATE_STRING,NULL_VALUE}, // DATE
+ {NULL_VALUE,VALID_TIME_STRING,VALID_TIME_STRING,VALID_TIME_STRING}, // TIME
+ {NULL_VALUE,VALID_TIMESTAMP_STRING,VALID_TIMESTAMP_STRING,VALID_TIMESTAMP_STRING}, // TIMESTAMP
+ {NULL_VALUE,NULL_VALUE,NULL_VALUE,NULL_VALUE} // BLOB
+ };
+
+ /**
+ * Create a table AllDataTypesTable and populate with data
+ * @param s
+ * @throws SQLException
+ */
+ public static void createAndPopulateAllDataTypesTable(Statement s) throws SQLException {
+ try {
+ s.executeUpdate("DROP TABLE AllDataTypesTable");
+ } catch (SQLException se) {
+ }
+
+ StringBuffer createSQL = new StringBuffer(
+ "create table AllDataTypesTable (");
+ for (int type = 0; type < CastingTest.SQLTypes.length - 1; type++) {
+ createSQL.append(allDataTypesColumnNames[type] + " " + CastingTest.SQLTypes[type]
+ + ",");
+ }
+ createSQL.append(allDataTypesColumnNames[CastingTest.SQLTypes.length - 1] + " "
+ + CastingTest.SQLTypes[CastingTest.SQLTypes.length - 1] + ")");
+ s.executeUpdate(createSQL.toString());
+
+ for (int row = 0; row < allDataTypesSQLData[0].length; row++) {
+ createSQL = new StringBuffer(
+ "insert into AllDataTypesTable values(");
+ for (int type = 0; type < CastingTest.SQLTypes.length - 1; type++) {
+ createSQL.append(allDataTypesSQLData[type][row] + ",");
+ }
+ createSQL.append(allDataTypesSQLData[CastingTest.SQLTypes.length - 1][row] + ")");
+
+ s.executeUpdate(createSQL.toString());
+ }
+
+ s.close();
+ }
}