Modified:
branches/branch_3_1/connector-j/CHANGES
branches/branch_3_1/connector-j/src/com/mysql/jdbc/MysqlDefs.java
branches/branch_3_1/connector-j/src/testsuite/regression/MetaDataRegressionTest.java
Log:
Fixed BUG#12970 - java.sql.Types.OTHER returned for
BINARY and VARBINARY columns when using DatabaseMetaData.getColumns().
Modified: branches/branch_3_1/connector-j/CHANGES
===================================================================
--- branches/branch_3_1/connector-j/CHANGES 2005-09-06 00:04:47 UTC (rev 4208)
+++ branches/branch_3_1/connector-j/CHANGES 2005-09-06 15:45:06 UTC (rev 4209)
@@ -129,6 +129,9 @@
- Fixed BUG#12752 - Cp1251 incorrectly mapped to win1251 for
servers newer than 4.0.x.
+ - Fixed BUG#12970 - java.sql.Types.OTHER returned for
+ BINARY and VARBINARY columns when using DatabaseMetaData.getColumns().
+
06-23-05 - Version 3.1.10-stable
- Fixed connecting without a database specified raised an exception
Modified: branches/branch_3_1/connector-j/src/com/mysql/jdbc/MysqlDefs.java
===================================================================
--- branches/branch_3_1/connector-j/src/com/mysql/jdbc/MysqlDefs.java 2005-09-06 00:04:47 UTC (rev 4208)
+++ branches/branch_3_1/connector-j/src/com/mysql/jdbc/MysqlDefs.java 2005-09-06 15:45:06 UTC (rev 4209)
@@ -377,6 +377,10 @@
return mysqlToJavaType(FIELD_TYPE_SET);
} else if (mysqlType.equalsIgnoreCase("GEOMETRY")) {
return mysqlToJavaType(FIELD_TYPE_GEOMETRY);
+ } else if (mysqlType.equalsIgnoreCase("BINARY")) {
+ return Types.BINARY; // no concrete type on the wire
+ } else if (mysqlType.equalsIgnoreCase("VARBINARY")) {
+ return Types.VARBINARY; // no concrete type on the wire
}
// Punt
Modified: branches/branch_3_1/connector-j/src/testsuite/regression/MetaDataRegressionTest.java
===================================================================
--- branches/branch_3_1/connector-j/src/testsuite/regression/MetaDataRegressionTest.java 2005-09-06 00:04:47 UTC (rev 4208)
+++ branches/branch_3_1/connector-j/src/testsuite/regression/MetaDataRegressionTest.java 2005-09-06 15:45:06 UTC (rev 4209)
@@ -1198,9 +1198,7 @@
*/
rs = ((com.mysql.jdbc.DatabaseMetaData)this.conn.getMetaData()).extractForeignKeyFromCreateTable(this.conn.getCatalog(),"app tab");
assertTrue("must return a row",rs.next()) ;
- System.out.println(rs.getString(1));
- System.out.println(rs.getString(2));
- System.out.println(rs.getString(3));
+
assertEquals("comment; APPFK(`C1`) REFER `test`/ `app tab` (`C1`)", rs.getString(3));
rs.close();
@@ -1214,6 +1212,44 @@
assertTrue(this.rs.next());
}
+ /**
+ * Tests fix for BUG#12970 - java.sql.Types.OTHER returned for
+ * binary and varbinary columns.
+ *
+ */
+ public void testBug12970() throws Exception {
+ if (versionMeetsMinimum(5, 0, 8)) {
+ String tableName = "testBug12970";
+
+ createTable(tableName, "(binary_field BINARY(32), varbinary_field VARBINARY(64))");
+
+ try {
+ this.rs = this.conn.getMetaData().getColumns(this.conn.getCatalog(),
+ null, tableName, "%");
+ assertTrue(this.rs.next());
+ assertEquals(Types.BINARY, this.rs.getInt("DATA_TYPE"));
+ assertEquals(32, this.rs.getInt("COLUMN_SIZE"));
+ assertTrue(this.rs.next());
+ assertEquals(Types.VARBINARY, this.rs.getInt("DATA_TYPE"));
+ assertEquals(64, this.rs.getInt("COLUMN_SIZE"));
+ this.rs.close();
+
+ this.rs = this.stmt.executeQuery("SELECT binary_field, varbinary_field FROM "
+ + tableName);
+ ResultSetMetaData rsmd = this.rs.getMetaData();
+ assertEquals(Types.BINARY, rsmd.getColumnType(1));
+ assertEquals(32, rsmd.getPrecision(1));
+ assertEquals(Types.VARBINARY, rsmd.getColumnType(2));
+ assertEquals(64, rsmd.getPrecision(2));
+ this.rs.close();
+ } finally {
+ if (this.rs != null) {
+ this.rs.close();
+ }
+ }
+ }
+ }
+
public void testSupportsCorrelatedSubqueries() throws Exception {
DatabaseMetaData dbmd = this.conn.getMetaData();
| Thread |
|---|
| • Connector/J commit: r4209 - in branches/branch_3_1/connector-j: . src/com/mysql/jdbc src/testsuite/regression | mmatthews | 6 Sep |