List:Internals« Previous MessageNext Message »
From:mmatthews Date:August 2 2005 10:15pm
Subject:Connector/J commit: r4018 - 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/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/regressionmmatthews2 Aug