Modified:
branches/branch_3_1/connector-j/CHANGES
branches/branch_3_1/connector-j/src/com/mysql/jdbc/ServerPreparedStatement.java
branches/branch_3_1/connector-j/src/testsuite/regression/StatementRegressionTest.java
Log:
Fixed BUG#11115, VARBINARY data corrupted when using server-side
prepared statements and .setBytes().
Modified: branches/branch_3_1/connector-j/CHANGES
===================================================================
--- branches/branch_3_1/connector-j/CHANGES 2005-08-02 20:04:30 UTC (rev 4017)
+++ branches/branch_3_1/connector-j/CHANGES 2005-08-02 20:15:38 UTC (rev 4018)
@@ -51,6 +51,9 @@
- Fixed BUG#11190 - ResultSet.moveToCurrentRow() fails to work when
preceeded by a call to ResultSet.moveToInsertRow().
+
+ - Fixed BUG#11115, VARBINARY data corrupted when using server-side
+ prepared statements and .setBytes().
06-23-05 - Version 3.1.10-stable
Modified: branches/branch_3_1/connector-j/src/com/mysql/jdbc/ServerPreparedStatement.java
===================================================================
---
branches/branch_3_1/connector-j/src/com/mysql/jdbc/ServerPreparedStatement.java 2005-08-02
20:04:30 UTC (rev 4017)
+++
branches/branch_3_1/connector-j/src/com/mysql/jdbc/ServerPreparedStatement.java 2005-08-02
20:15:38 UTC (rev 4018)
@@ -1498,7 +1498,7 @@
setNull(parameterIndex, java.sql.Types.BINARY);
} else {
BindValue binding = getBinding(parameterIndex, false);
- setType(binding, MysqlDefs.FIELD_TYPE_BLOB);
+ setType(binding, MysqlDefs.FIELD_TYPE_VAR_STRING);
binding.value = x;
binding.isNull = false;
@@ -1974,6 +1974,8 @@
this.connection.getServerCharacterEncoding(),
this.charConverter, this.connection
.parserKnowsUnicode());
+ } else if (value instanceof byte[]) {
+ packet.writeLenBytes((byte[]) value);
} else {
packet.writeLenBytes(((String) value).getBytes());
}
@@ -1981,9 +1983,7 @@
return;
}
- if (value instanceof byte[]) {
- packet.writeLenBytes((byte[]) value);
- }
+
} catch (UnsupportedEncodingException uEE) {
throw new SQLException(Messages
.getString("ServerPreparedStatement.22") //$NON-NLS-1$
Modified:
branches/branch_3_1/connector-j/src/testsuite/regression/StatementRegressionTest.java
===================================================================
---
branches/branch_3_1/connector-j/src/testsuite/regression/StatementRegressionTest.java 2005-08-02
20:04:30 UTC (rev 4017)
+++
branches/branch_3_1/connector-j/src/testsuite/regression/StatementRegressionTest.java 2005-08-02
20:15:38 UTC (rev 4018)
@@ -2514,7 +2514,7 @@
if (versionMeetsMinimum(4, 1, 0)) {
createTable(tableName, "(pwd VARBINARY(30)) TYPE=InnoDB DEFAULT CHARACTER SET
utf8");
-
+
byte[] bytesToTest = new byte[] { 17, 120, -1, -73, -5 };
PreparedStatement insStmt = this.conn.prepareStatement("INSERT INTO " + tableName
+ " (pwd) VALUES (?)");
| Thread |
|---|
| • Connector/J commit: r4018 - in branches/branch_3_1/connector-j: . src/com/mysql/jdbc src/testsuite/regression | mmatthews | 2 Aug |