List:Internals« Previous MessageNext Message »
From:mmatthews Date:August 2 2005 6:10pm
Subject:Connector/J commit: r4011 - in branches/branch_3_1/connector-j/src: com/mysql/jdbc testsuite/regression
View as plain text  
Modified:
   branches/branch_3_1/connector-j/src/com/mysql/jdbc/MysqlIO.java
   branches/branch_3_1/connector-j/src/com/mysql/jdbc/ResultSet.java
   branches/branch_3_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java
Log:
Fix for BUG#12104 - Geometry types not handled with
server-side prepared statements.

Modified: branches/branch_3_1/connector-j/src/com/mysql/jdbc/MysqlIO.java
===================================================================
--- branches/branch_3_1/connector-j/src/com/mysql/jdbc/MysqlIO.java	2005-08-02 18:03:33 UTC (rev 4010)
+++ branches/branch_3_1/connector-j/src/com/mysql/jdbc/MysqlIO.java	2005-08-02 18:10:21 UTC (rev 4011)
@@ -3774,6 +3774,7 @@
     	
     		unpackedRowData[columnIndex] = binaryData.getBytes(length);
     		break;
+    	case MysqlDefs.FIELD_TYPE_GEOMETRY:
     	case MysqlDefs.FIELD_TYPE_TINY_BLOB:
     	case MysqlDefs.FIELD_TYPE_MEDIUM_BLOB:
     	case MysqlDefs.FIELD_TYPE_LONG_BLOB:
@@ -4132,6 +4133,7 @@
     	case MysqlDefs.FIELD_TYPE_STRING:
     	case MysqlDefs.FIELD_TYPE_VARCHAR:
     	case MysqlDefs.FIELD_TYPE_DECIMAL:
+    	case MysqlDefs.FIELD_TYPE_GEOMETRY:
     		unpackedRowData[columnIndex] = binaryData.readLenByteArray(0);
     		
     		break;

Modified: branches/branch_3_1/connector-j/src/com/mysql/jdbc/ResultSet.java
===================================================================
--- branches/branch_3_1/connector-j/src/com/mysql/jdbc/ResultSet.java	2005-08-02 18:03:33 UTC (rev 4010)
+++ branches/branch_3_1/connector-j/src/com/mysql/jdbc/ResultSet.java	2005-08-02 18:10:21 UTC (rev 4011)
@@ -4383,8 +4383,9 @@
 		case Types.BINARY:
 		case Types.VARBINARY:
 		case Types.LONGVARBINARY:
-
-			if (!field.isBlob()) {
+			if (field.getMysqlType() == MysqlDefs.FIELD_TYPE_GEOMETRY) {
+				return getBytes(columnIndex, true);
+			} else if (!field.isBlob()) {
 				return getString(columnIndex);
 			} else if (!field.isBinary()) {
 				return getString(columnIndex);

Modified: branches/branch_3_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java
===================================================================
--- branches/branch_3_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java	2005-08-02 18:03:33 UTC (rev 4010)
+++ branches/branch_3_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java	2005-08-02 18:10:21 UTC (rev 4011)
@@ -1916,6 +1916,27 @@
 		}
 	}
 
+	/**
+	 * Tests fix for BUG#12104 - Geometry types not handled with
+	 * server-side prepared statements.
+	 * 
+	 * @throws Exception if the test fails
+	 */
+	public void testBug12104() throws Exception {
+		if (versionMeetsMinimum(4, 1)) {
+			createTable("testBug12104", "(field1 GEOMETRY)");
+			
+			try {
+				this.stmt.executeUpdate("INSERT INTO testBug12104 VALUES (GeomFromText('POINT(1 1)'))");
+				this.pstmt = this.conn.prepareStatement("SELECT field1 FROM testBug12104");
+				this.rs = this.pstmt.executeQuery();
+				assertTrue(this.rs.next());
+				System.out.println(this.rs.getObject(1));
+			} finally {
+				
+			}
+		}
+	}
 	public void testNPEWithUsageAdvisor() throws Exception {
 		Connection advisorConn = null;
 

Thread
Connector/J commit: r4011 - in branches/branch_3_1/connector-j/src: com/mysql/jdbc testsuite/regressionmmatthews2 Aug