List:Commits« Previous MessageNext Message »
From:mmatthews Date:June 15 2006 9:46pm
Subject: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...
View as plain text  
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...mmatthews15 Jun