Modified:
branches/branch_3_1/connector-j/CHANGES
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
branches/branch_5_0/connector-j/CHANGES
branches/branch_5_0/connector-j/src/com/mysql/jdbc/MysqlIO.java
branches/branch_5_0/connector-j/src/testsuite/regression/ResultSetRegressionTest.java
branches/branch_5_1/connector-j/CHANGES
branches/branch_5_1/connector-j/src/com/mysql/jdbc/MysqlIO.java
branches/branch_5_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java
Log:
- Fixed BUG#20485 - Updatable result set that contains
a BIT column fails when server-side prepared statements are used.
Modified: branches/branch_3_1/connector-j/CHANGES
===================================================================
--- branches/branch_3_1/connector-j/CHANGES 2006-06-15 19:24:26 UTC (rev 5390)
+++ branches/branch_3_1/connector-j/CHANGES 2006-06-15 19:46:05 UTC (rev 5391)
@@ -6,6 +6,9 @@
- Fixed BUG#20479 - Updatable result set throws ClassCastException
when there is row data and moveToInsertRow() is called.
+ - Fixed BUG#20485 - Updatable result set that contains
+ a BIT column fails when server-side prepared statements are used.
+
05-26-06 - Version 3.1.13
- Fixed BUG#15464 - INOUT parameter does not store IN value.
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 2006-06-15 19:24:26
UTC (rev 5390)
+++ branches/branch_3_1/connector-j/src/com/mysql/jdbc/MysqlIO.java 2006-06-15 19:46:05
UTC (rev 5391)
@@ -4194,6 +4194,7 @@
case MysqlDefs.FIELD_TYPE_DECIMAL:
case MysqlDefs.FIELD_TYPE_NEW_DECIMAL:
case MysqlDefs.FIELD_TYPE_GEOMETRY:
+ case MysqlDefs.FIELD_TYPE_BIT:
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 2006-06-15 19:24:26
UTC (rev 5390)
+++ branches/branch_3_1/connector-j/src/com/mysql/jdbc/ResultSet.java 2006-06-15 19:46:05
UTC (rev 5391)
@@ -4796,6 +4796,8 @@
return String.valueOf(asBytes[0]);
}
+
+ return String.valueOf(getNumericRepresentationOfSQLBitType(columnIndex + 1));
}
String encoding = this.fields[columnIndex].getCharacterSet();
Modified:
branches/branch_3_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java
===================================================================
---
branches/branch_3_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java 2006-06-15
19:24:26 UTC (rev 5390)
+++
branches/branch_3_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java 2006-06-15
19:46:05 UTC (rev 5391)
@@ -2523,6 +2523,38 @@
}
}
+ /**
+ * Tests fix for BUG#20485 - Updatable result set that contains
+ * a BIT column fails when server-side prepared statements are used.
+ *
+ * @throws Exception if the test fails.
+ */
+ public void testBug20485() throws Exception {
+ if (!versionMeetsMinimum(5, 0)) {
+ return;
+ }
+
+ PreparedStatement updStmt = null;
+
+ createTable("testBug20485", "(field1 INT NOT NULL PRIMARY KEY, field2 BIT)");
+ this.stmt.executeUpdate("INSERT INTO testBug20485 VALUES (2, 1), (3, 1), (4, 1)");
+
+ try {
+ updStmt = this.conn.prepareStatement("SELECT * FROM testBug20485 ORDER BY field1",
+ ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
+ this.rs = updStmt.executeQuery();
+ } finally {
+ if (this.rs != null) {
+ this.rs.close();
+ this.rs = null;
+ }
+
+ if (updStmt != null) {
+ updStmt.close();
+ }
+ }
+ }
+
private void traverseResultSetBug14562() throws SQLException {
assertTrue(this.rs.next());
Modified: branches/branch_5_0/connector-j/CHANGES
===================================================================
--- branches/branch_5_0/connector-j/CHANGES 2006-06-15 19:24:26 UTC (rev 5390)
+++ branches/branch_5_0/connector-j/CHANGES 2006-06-15 19:46:05 UTC (rev 5391)
@@ -134,6 +134,9 @@
- Fixed BUG#20479 - Updatable result set throws ClassCastException
when there is row data and moveToInsertRow() is called.
+ - Fixed BUG#20485 - Updatable result set that contains
+ a BIT column fails when server-side prepared statements are used.
+
05-26-06 - Version 3.1.13
- Fixed BUG#15464 - INOUT parameter does not store IN value.
Modified: branches/branch_5_0/connector-j/src/com/mysql/jdbc/MysqlIO.java
===================================================================
--- branches/branch_5_0/connector-j/src/com/mysql/jdbc/MysqlIO.java 2006-06-15 19:24:26
UTC (rev 5390)
+++ branches/branch_5_0/connector-j/src/com/mysql/jdbc/MysqlIO.java 2006-06-15 19:46:05
UTC (rev 5391)
@@ -3758,6 +3758,7 @@
case MysqlDefs.FIELD_TYPE_VARCHAR:
case MysqlDefs.FIELD_TYPE_DECIMAL:
case MysqlDefs.FIELD_TYPE_NEW_DECIMAL:
+ case MysqlDefs.FIELD_TYPE_BIT:
unpackedRowData[columnIndex] = binaryData.readLenByteArray(0);
break;
Modified:
branches/branch_5_0/connector-j/src/testsuite/regression/ResultSetRegressionTest.java
===================================================================
---
branches/branch_5_0/connector-j/src/testsuite/regression/ResultSetRegressionTest.java 2006-06-15
19:24:26 UTC (rev 5390)
+++
branches/branch_5_0/connector-j/src/testsuite/regression/ResultSetRegressionTest.java 2006-06-15
19:46:05 UTC (rev 5391)
@@ -3342,4 +3342,36 @@
}
}
}
+
+ /**
+ * Tests fix for BUG#20485 - Updatable result set that contains
+ * a BIT column fails when server-side prepared statements are used.
+ *
+ * @throws Exception if the test fails.
+ */
+ public void testBug20485() throws Exception {
+ if (!versionMeetsMinimum(5, 0)) {
+ return;
+ }
+
+ PreparedStatement updStmt = null;
+
+ createTable("testBug20485", "(field1 INT NOT NULL PRIMARY KEY, field2 BIT)");
+ this.stmt.executeUpdate("INSERT INTO testBug20485 VALUES (2, 1), (3, 1), (4, 1)");
+
+ try {
+ updStmt = this.conn.prepareStatement("SELECT * FROM testBug20485 ORDER BY field1",
+ ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
+ this.rs = updStmt.executeQuery();
+ } finally {
+ if (this.rs != null) {
+ this.rs.close();
+ this.rs = null;
+ }
+
+ if (updStmt != null) {
+ updStmt.close();
+ }
+ }
+ }
}
Modified: branches/branch_5_1/connector-j/CHANGES
===================================================================
--- branches/branch_5_1/connector-j/CHANGES 2006-06-15 19:24:26 UTC (rev 5390)
+++ branches/branch_5_1/connector-j/CHANGES 2006-06-15 19:46:05 UTC (rev 5391)
@@ -108,6 +108,9 @@
- Fixed BUG#20479 - Updatable result set throws ClassCastException
when there is row data and moveToInsertRow() is called.
+ - Fixed BUG#20485 - Updatable result set that contains
+ a BIT column fails when server-side prepared statements are used.
+
05-26-06 - Version 3.1.13
- Fixed BUG#15464 - INOUT parameter does not store IN value.
Modified: branches/branch_5_1/connector-j/src/com/mysql/jdbc/MysqlIO.java
===================================================================
--- branches/branch_5_1/connector-j/src/com/mysql/jdbc/MysqlIO.java 2006-06-15 19:24:26
UTC (rev 5390)
+++ branches/branch_5_1/connector-j/src/com/mysql/jdbc/MysqlIO.java 2006-06-15 19:46:05
UTC (rev 5391)
@@ -3846,6 +3846,7 @@
case MysqlDefs.FIELD_TYPE_VARCHAR:
case MysqlDefs.FIELD_TYPE_DECIMAL:
case MysqlDefs.FIELD_TYPE_NEW_DECIMAL:
+ case MysqlDefs.FIELD_TYPE_BIT:
unpackedRowData[columnIndex] = binaryData.readLenByteArray(0);
break;
Modified:
branches/branch_5_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java
===================================================================
---
branches/branch_5_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java 2006-06-15
19:24:26 UTC (rev 5390)
+++
branches/branch_5_1/connector-j/src/testsuite/regression/ResultSetRegressionTest.java 2006-06-15
19:46:05 UTC (rev 5391)
@@ -3041,4 +3041,36 @@
}
}
+ /**
+ * Tests fix for BUG#20485 - Updatable result set that contains
+ * a BIT column fails when server-side prepared statements are used.
+ *
+ * @throws Exception if the test fails.
+ */
+ public void testBug20485() throws Exception {
+ if (!versionMeetsMinimum(5, 0)) {
+ return;
+ }
+
+ PreparedStatement updStmt = null;
+
+ createTable("testBug20485", "(field1 INT NOT NULL PRIMARY KEY, field2 BIT)");
+ this.stmt.executeUpdate("INSERT INTO testBug20485 VALUES (2, 1), (3, 1), (4, 1)");
+
+ try {
+ updStmt = this.conn.prepareStatement("SELECT * FROM testBug20485 ORDER BY field1",
+ ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
+ this.rs = updStmt.executeQuery();
+ } finally {
+ if (this.rs != null) {
+ this.rs.close();
+ this.rs = null;
+ }
+
+ if (updStmt != null) {
+ updStmt.close();
+ }
+ }
+ }
+
}
| Thread |
|---|
| • Connector/J commit: r5391 - in branches: branch_3_1/connector-j branch_3_1/connector-j/src/com/mysql/jdbc branch_3_1/connector-j/src/testsuite/regress... | mmatthews | 15 Jun |