List:Internals« Previous MessageNext Message »
From:mmatthews Date:September 6 2005 3:45pm
Subject:Connector/J commit: r4209 - in branches/branch_3_1/connector-j: . src/com/mysql/jdbc src/testsuite/regression
View as plain text  
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/regressionmmatthews6 Sep