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/regression | mmatthews | 2 Aug |