List:Commits« Previous MessageNext Message »
From:mmatthews Date:January 20 2008 3:53am
Subject:Connector/J commit: r6715 - branches/branch_5_1/src/testsuite/regression
View as plain text  
Modified:
   branches/branch_5_1/src/testsuite/regression/CallableStatementRegressionTest.java
   branches/branch_5_1/src/testsuite/regression/ResultSetRegressionTest.java
Log:
Merged.

Modified: branches/branch_5_1/src/testsuite/regression/CallableStatementRegressionTest.java
===================================================================
--- branches/branch_5_1/src/testsuite/regression/CallableStatementRegressionTest.java	2008-01-20 03:53:35 UTC (rev 6714)
+++ branches/branch_5_1/src/testsuite/regression/CallableStatementRegressionTest.java	2008-01-20 03:53:53 UTC (rev 6715)
@@ -82,7 +82,7 @@
 					+ "BEGIN\n" + "SELECT 1;" + "end\n");
 
 			this.rs = this.conn.getMetaData().getProcedures(null, null,
-			"testBug3539");
+					"testBug3539");
 
 			assertTrue(this.rs.next());
 			assertTrue("testBug3539".equals(this.rs.getString(3)));
@@ -105,11 +105,11 @@
 		try {
 			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug3540");
 			this.stmt
-			.executeUpdate("CREATE PROCEDURE testBug3540(x int, out y int)\n"
-					+ "BEGIN\n" + "SELECT 1;" + "end\n");
+					.executeUpdate("CREATE PROCEDURE testBug3540(x int, out y int)\n"
+							+ "BEGIN\n" + "SELECT 1;" + "end\n");
 
-			this.rs = this.conn.getMetaData().getProcedureColumns(null,
-					null, "testBug3540%", "%");
+			this.rs = this.conn.getMetaData().getProcedureColumns(null, null,
+					"testBug3540%", "%");
 
 			assertTrue(this.rs.next());
 			assertTrue("testBug3540".equals(this.rs.getString(3)));
@@ -140,8 +140,8 @@
 		try {
 			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug7026");
 			this.stmt
-			.executeUpdate("CREATE PROCEDURE testBug7026(x int, out y int)\n"
-					+ "BEGIN\n" + "SELECT 1;" + "end\n");
+					.executeUpdate("CREATE PROCEDURE testBug7026(x int, out y int)\n"
+							+ "BEGIN\n" + "SELECT 1;" + "end\n");
 
 			//
 			// Should be found this time.
@@ -158,8 +158,8 @@
 			// This time, shouldn't be found, because not associated with
 			// this (bogus) catalog
 			//
-			this.rs = this.conn.getMetaData().getProcedures("abfgerfg",
-					null, "testBug7026");
+			this.rs = this.conn.getMetaData().getProcedures("abfgerfg", null,
+					"testBug7026");
 			assertTrue(!this.rs.next());
 
 			//
@@ -167,7 +167,7 @@
 			// specified a catalog.
 			//
 			this.rs = this.conn.getMetaData().getProcedures(null, null,
-			"testBug7026");
+					"testBug7026");
 
 			assertTrue(this.rs.next());
 			assertTrue("testBug7026".equals(this.rs.getString(3)));
@@ -195,7 +195,6 @@
 		// hang on the
 		// last execution of this testcase, filed as BUG#9405
 
-
 		if (isAdminConnectionConfigured()) {
 			Connection db2Connection = null;
 			Connection db1Connection = null;
@@ -209,44 +208,40 @@
 				db2Connection.setCatalog("db_9319_2");
 
 				db2Connection.createStatement().executeUpdate(
-				"DROP PROCEDURE IF EXISTS COMPROVAR_USUARI");
+						"DROP PROCEDURE IF EXISTS COMPROVAR_USUARI");
 
-				db2Connection
-				.createStatement()
-				.executeUpdate(
+				db2Connection.createStatement().executeUpdate(
 						"CREATE PROCEDURE COMPROVAR_USUARI(IN p_CodiUsuari VARCHAR(10),"
-						+ "\nIN p_contrasenya VARCHAR(10),"
-						+ "\nOUT p_userId INTEGER,"
-						+ "\nOUT p_userName VARCHAR(30),"
-						+ "\nOUT p_administrador VARCHAR(1),"
-						+ "\nOUT p_idioma VARCHAR(2))"
-						+ "\nBEGIN"
+								+ "\nIN p_contrasenya VARCHAR(10),"
+								+ "\nOUT p_userId INTEGER,"
+								+ "\nOUT p_userName VARCHAR(30),"
+								+ "\nOUT p_administrador VARCHAR(1),"
+								+ "\nOUT p_idioma VARCHAR(2))"
+								+ "\nBEGIN"
 
-						+ (doASelect ? "\nselect 2;"
-								: "\nSELECT 2 INTO p_administrador;")
+								+ (doASelect ? "\nselect 2;"
+										: "\nSELECT 2 INTO p_administrador;")
 								+ "\nEND");
 
 				db1Connection.createStatement().executeUpdate(
-				"CREATE DATABASE IF NOT EXISTS db_9319_1");
+						"CREATE DATABASE IF NOT EXISTS db_9319_1");
 				db1Connection.setCatalog("db_9319_1");
 
 				db1Connection.createStatement().executeUpdate(
-				"DROP PROCEDURE IF EXISTS COMPROVAR_USUARI");
-				db1Connection
-				.createStatement()
-				.executeUpdate(
+						"DROP PROCEDURE IF EXISTS COMPROVAR_USUARI");
+				db1Connection.createStatement().executeUpdate(
 						"CREATE PROCEDURE COMPROVAR_USUARI(IN p_CodiUsuari VARCHAR(10),"
-						+ "\nIN p_contrasenya VARCHAR(10),"
-						+ "\nOUT p_userId INTEGER,"
-						+ "\nOUT p_userName VARCHAR(30),"
-						+ "\nOUT p_administrador VARCHAR(1))"
-						+ "\nBEGIN"
-						+ (doASelect ? "\nselect 1;"
-								: "\nSELECT 1 INTO p_administrador;")
+								+ "\nIN p_contrasenya VARCHAR(10),"
+								+ "\nOUT p_userId INTEGER,"
+								+ "\nOUT p_userName VARCHAR(30),"
+								+ "\nOUT p_administrador VARCHAR(1))"
+								+ "\nBEGIN"
+								+ (doASelect ? "\nselect 1;"
+										: "\nSELECT 1 INTO p_administrador;")
 								+ "\nEND");
 
 				CallableStatement cstmt = db2Connection
-				.prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?, ?) }");
+						.prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?, ?) }");
 				cstmt.setString(1, "abc");
 				cstmt.setString(2, "def");
 				cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
@@ -266,7 +261,7 @@
 				}
 
 				cstmt = db1Connection
-				.prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?, ?) }");
+						.prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?, ?) }");
 				cstmt.setString(1, "abc");
 				cstmt.setString(2, "def");
 				cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
@@ -282,7 +277,7 @@
 				}
 
 				cstmt = db1Connection
-				.prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?) }");
+						.prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?) }");
 				cstmt.setString(1, "abc");
 				cstmt.setString(2, "def");
 				cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
@@ -300,7 +295,7 @@
 				}
 
 				String quoteChar = db2Connection.getMetaData()
-				.getIdentifierQuoteString();
+						.getIdentifierQuoteString();
 
 				cstmt = db2Connection.prepareCall("{ call " + quoteChar
 						+ db1Connection.getCatalog() + quoteChar + "."
@@ -326,14 +321,14 @@
 					db2Connection.createStatement().executeUpdate(
 							"DROP PROCEDURE IF EXISTS COMPROVAR_USUARI");
 					db2Connection.createStatement().executeUpdate(
-					"DROP DATABASE IF EXISTS db_9319_2");
+							"DROP DATABASE IF EXISTS db_9319_2");
 				}
 
 				if (db1Connection != null) {
 					db1Connection.createStatement().executeUpdate(
 							"DROP PROCEDURE IF EXISTS COMPROVAR_USUARI");
 					db1Connection.createStatement().executeUpdate(
-					"DROP DATABASE IF EXISTS db_9319_1");
+							"DROP DATABASE IF EXISTS db_9319_1");
 				}
 			}
 		}
@@ -447,8 +442,8 @@
 		try {
 			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug9682");
 			this.stmt
-			.executeUpdate("CREATE PROCEDURE testBug9682(decimalParam DECIMAL(18,0))"
-					+ "\nBEGIN" + "\n   SELECT 1;" + "\nEND");
+					.executeUpdate("CREATE PROCEDURE testBug9682(decimalParam DECIMAL(18,0))"
+							+ "\nBEGIN" + "\n   SELECT 1;" + "\nEND");
 			cStmt = this.conn.prepareCall("Call testBug9682(?)");
 			cStmt.setDouble(1, 18.0);
 			cStmt.execute();
@@ -479,8 +474,8 @@
 		try {
 			this.stmt.executeUpdate("DROP FUNCTION IF EXISTS testBug10310");
 			this.stmt
-			.executeUpdate("CREATE FUNCTION testBug10310(a float, b bigint, c int) RETURNS INT"
-					+ "\nBEGIN" + "\nRETURN a;" + "\nEND");
+					.executeUpdate("CREATE FUNCTION testBug10310(a float, b bigint, c int) RETURNS INT"
+							+ "\nBEGIN" + "\nRETURN a;" + "\nEND");
 			cStmt = this.conn.prepareCall("{? = CALL testBug10310(?,?,?)}");
 			cStmt.registerOutParameter(1, Types.INTEGER);
 			cStmt.setFloat(2, 2);
@@ -488,8 +483,10 @@
 			cStmt.setInt(4, 1);
 
 			if (!isRunningOnJdk131()) {
-				assertEquals(4, cStmt.getParameterMetaData().getParameterCount());
-				assertEquals(Types.INTEGER, cStmt.getParameterMetaData().getParameterType(1));
+				assertEquals(4, cStmt.getParameterMetaData()
+						.getParameterCount());
+				assertEquals(Types.INTEGER, cStmt.getParameterMetaData()
+						.getParameterType(1));
 			}
 
 			assertFalse(cStmt.execute());
@@ -523,10 +520,9 @@
 			java.sql.DatabaseMetaData dbmd = this.conn.getMetaData();
 
 			this.rs = dbmd.getProcedures(this.conn.getCatalog(), null,
-			"testBug10310");
+					"testBug10310");
 			this.rs.next();
-			assertEquals("testBug10310", this.rs
-					.getString("PROCEDURE_NAME"));
+			assertEquals("testBug10310", this.rs.getString("PROCEDURE_NAME"));
 			assertEquals(DatabaseMetaData.procedureReturnsResult, this.rs
 					.getShort("PROCEDURE_TYPE"));
 			cStmt.setNull(2, Types.FLOAT);
@@ -545,7 +541,6 @@
 			assertEquals(null, cStmt.getObject(1));
 			assertEquals(true, cStmt.wasNull());
 
-
 			// Check with literals, not all parameters filled!
 			cStmt = this.conn.prepareCall("{? = CALL testBug10310(4,5,?)}");
 			cStmt.registerOutParameter(1, Types.INTEGER);
@@ -562,9 +557,12 @@
 					.getName());
 
 			if (!isRunningOnJdk131()) {
-				assertEquals(2, cStmt.getParameterMetaData().getParameterCount());
-				assertEquals(Types.INTEGER, cStmt.getParameterMetaData().getParameterType(1));
-				assertEquals(Types.INTEGER, cStmt.getParameterMetaData().getParameterType(2));
+				assertEquals(2, cStmt.getParameterMetaData()
+						.getParameterCount());
+				assertEquals(Types.INTEGER, cStmt.getParameterMetaData()
+						.getParameterType(1));
+				assertEquals(Types.INTEGER, cStmt.getParameterMetaData()
+						.getParameterType(2));
 			}
 		} finally {
 			if (this.rs != null) {
@@ -594,10 +592,10 @@
 
 			try {
 				this.stmt
-				.executeUpdate("DROP PROCEDURE IF EXISTS testBug12417");
+						.executeUpdate("DROP PROCEDURE IF EXISTS testBug12417");
 				this.stmt.executeUpdate("CREATE PROCEDURE testBug12417()\n"
 						+ "BEGIN\n" + "SELECT 1;" + "end\n");
-				ucCatalogConn = getConnectionWithProps((Properties)null);
+				ucCatalogConn = getConnectionWithProps((Properties) null);
 				ucCatalogConn.setCatalog(this.conn.getCatalog().toUpperCase());
 				ucCatalogConn.prepareCall("{call testBug12417()}");
 			} finally {
@@ -614,7 +612,7 @@
 		if (false /* needs to be fixed on server */) {
 			if (versionMeetsMinimum(5, 0)) {
 				this.stmt
-				.executeUpdate("DROP PROCEDURE IF EXISTS p_testBug15121");
+						.executeUpdate("DROP PROCEDURE IF EXISTS p_testBug15121");
 
 				this.stmt.executeUpdate("CREATE PROCEDURE p_testBug15121()\n"
 						+ "BEGIN\n" + "SELECT * from idonotexist;\n" + "END");
@@ -629,7 +627,7 @@
 
 					StringBuffer queryBuf = new StringBuffer("{call ");
 					String quotedId = this.conn.getMetaData()
-					.getIdentifierQuoteString();
+							.getIdentifierQuoteString();
 					queryBuf.append(quotedId);
 					queryBuf.append(this.conn.getCatalog());
 					queryBuf.append(quotedId);
@@ -659,19 +657,18 @@
 		CallableStatement storedProc = null;
 
 		try {
+			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testInOutParam");
 			this.stmt
-			.executeUpdate("DROP PROCEDURE IF EXISTS testInOutParam");
-			this.stmt
-			.executeUpdate("create procedure testInOutParam(IN p1 VARCHAR(255), INOUT p2 INT)\n"
-					+ "begin\n"
-					+ " DECLARE z INT;\n"
-					+ "SET z = p2 + 1;\n"
-					+ "SET p2 = z;\n"
-					+ "SELECT p1;\n"
-					+ "SELECT CONCAT('zyxw', p1);\n" + "end\n");
+					.executeUpdate("create procedure testInOutParam(IN p1 VARCHAR(255), INOUT p2 INT)\n"
+							+ "begin\n"
+							+ " DECLARE z INT;\n"
+							+ "SET z = p2 + 1;\n"
+							+ "SET p2 = z;\n"
+							+ "SELECT p1;\n"
+							+ "SELECT CONCAT('zyxw', p1);\n"
+							+ "end\n");
 
-			storedProc = this.conn
-			.prepareCall("{call testInOutParam(?, ?)}");
+			storedProc = this.conn.prepareCall("{call testInOutParam(?, ?)}");
 
 			storedProc.setString(1, "abcd");
 			storedProc.setInt(2, 4);
@@ -681,8 +678,7 @@
 
 			assertEquals(5, storedProc.getInt(2));
 		} finally {
-			this.stmt
-			.executeUpdate("DROP PROCEDURE IF EXISTS testInOutParam");
+			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testInOutParam");
 		}
 	}
 
@@ -702,10 +698,10 @@
 
 		this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug17898");
 		this.stmt
-		.executeUpdate("CREATE PROCEDURE testBug17898(param1 VARCHAR(50), OUT param2 INT)\nBEGIN\nDECLARE rtn INT;\nSELECT 1 INTO rtn;\nSET param2=rtn;\nEND");
+				.executeUpdate("CREATE PROCEDURE testBug17898(param1 VARCHAR(50), OUT param2 INT)\nBEGIN\nDECLARE rtn INT;\nSELECT 1 INTO rtn;\nSET param2=rtn;\nEND");
 
 		CallableStatement cstmt = this.conn
-		.prepareCall("{CALL testBug17898('foo', ?)}");
+				.prepareCall("{CALL testBug17898('foo', ?)}");
 		cstmt.registerOutParameter(1, Types.INTEGER);
 		cstmt.execute();
 		assertEquals(1, cstmt.getInt(1));
@@ -720,10 +716,12 @@
 	}
 
 	/**
-	 * Tests fix for BUG#21462 - JDBC (and ODBC) specifications allow no-parenthesis
-	 * CALL statements for procedures with no arguments, MySQL server does not.
+	 * Tests fix for BUG#21462 - JDBC (and ODBC) specifications allow
+	 * no-parenthesis CALL statements for procedures with no arguments, MySQL
+	 * server does not.
 	 * 
-	 * @throws Exception if the test fails.
+	 * @throws Exception
+	 *             if the test fails.
 	 */
 	public void testBug21462() throws Exception {
 		if (!serverSupportsStoredProcedures()) {
@@ -734,7 +732,8 @@
 
 		try {
 			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug21462");
-			this.stmt.executeUpdate("CREATE PROCEDURE testBug21462() BEGIN SELECT 1; END");
+			this.stmt
+					.executeUpdate("CREATE PROCEDURE testBug21462() BEGIN SELECT 1; END");
 			cstmt = this.conn.prepareCall("{CALL testBug21462}");
 			cstmt.execute();
 		} finally {
@@ -747,11 +746,12 @@
 
 	}
 
-	/** 
+	/**
 	 * Tests fix for BUG#22024 - Newlines causing whitespace to span confuse
 	 * procedure parser when getting parameter metadata for stored procedures.
 	 * 
-	 * @throws Exception if the test fails
+	 * @throws Exception
+	 *             if the test fails
 	 */
 	public void testBug22024() throws Exception {
 		if (!serverSupportsStoredProcedures()) {
@@ -762,12 +762,14 @@
 
 		try {
 			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug22024");
-			this.stmt.executeUpdate("CREATE PROCEDURE testBug22024(\r\n)\r\n BEGIN SELECT 1; END");
+			this.stmt
+					.executeUpdate("CREATE PROCEDURE testBug22024(\r\n)\r\n BEGIN SELECT 1; END");
 			cstmt = this.conn.prepareCall("{CALL testBug22024()}");
 			cstmt.execute();
 
 			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug22024");
-			this.stmt.executeUpdate("CREATE PROCEDURE testBug22024(\r\na INT)\r\n BEGIN SELECT 1; END");
+			this.stmt
+					.executeUpdate("CREATE PROCEDURE testBug22024(\r\na INT)\r\n BEGIN SELECT 1; END");
 			cstmt = this.conn.prepareCall("{CALL testBug22024(?)}");
 			cstmt.setInt(1, 1);
 			cstmt.execute();
@@ -782,11 +784,12 @@
 	}
 
 	/**
-	 * Tests workaround for server crash when calling stored procedures
-	 * via a server-side prepared statement (driver now detects 
-	 * prepare(stored procedure) and substitutes client-side prepared statement).
+	 * Tests workaround for server crash when calling stored procedures via a
+	 * server-side prepared statement (driver now detects prepare(stored
+	 * procedure) and substitutes client-side prepared statement).
 	 * 
-	 * @throws Exception if the test fails
+	 * @throws Exception
+	 *             if the test fails
 	 */
 	public void testBug22297() throws Exception {
 		if (!serverSupportsStoredProcedures()) {
@@ -797,47 +800,49 @@
 
 		createTable("tblTestBug2297_1", "("
 				+ "id varchar(20) NOT NULL default '',"
-				+ "Income double(19,2) default NULL)");	
+				+ "Income double(19,2) default NULL)");
 
 		createTable("tblTestBug2297_2", "("
-				+ "id varchar(20) NOT NULL default ''," 
+				+ "id varchar(20) NOT NULL default '',"
 				+ "CreatedOn datetime default NULL)");
 
-		this.stmt.executeUpdate("CREATE PROCEDURE testBug22297(pcaseid INT)"
-				+ "BEGIN"
-				+ "\nSET @sql = \"DROP TEMPORARY TABLE IF EXISTS tmpOrders\";"
-				+ " PREPARE stmt FROM @sql;"
-				+ " EXECUTE stmt;"
-				+ " DEALLOCATE PREPARE stmt;"
-				+ "\nSET @sql = \"CREATE TEMPORARY TABLE tmpOrders SELECT id, 100 AS Income FROM tblTestBug2297_1 GROUP BY id\";"
-				+ " PREPARE stmt FROM @sql;"
-				+ " EXECUTE stmt;"
-				+ " DEALLOCATE PREPARE stmt;"
-				+ "\n SELECT id, Income FROM (SELECT e.id AS id ,COALESCE(prof.Income,0) AS Income"
-				+ "\n FROM tblTestBug2297_2 e LEFT JOIN tmpOrders prof ON e.id = prof.id"
-				+ "\n WHERE e.CreatedOn > '2006-08-01') AS Final ORDER BY id;" 
-				+ "\nEND");
+		this.stmt
+				.executeUpdate("CREATE PROCEDURE testBug22297(pcaseid INT)"
+						+ "BEGIN"
+						+ "\nSET @sql = \"DROP TEMPORARY TABLE IF EXISTS tmpOrders\";"
+						+ " PREPARE stmt FROM @sql;"
+						+ " EXECUTE stmt;"
+						+ " DEALLOCATE PREPARE stmt;"
+						+ "\nSET @sql = \"CREATE TEMPORARY TABLE tmpOrders SELECT id, 100 AS Income FROM tblTestBug2297_1 GROUP BY id\";"
+						+ " PREPARE stmt FROM @sql;"
+						+ " EXECUTE stmt;"
+						+ " DEALLOCATE PREPARE stmt;"
+						+ "\n SELECT id, Income FROM (SELECT e.id AS id ,COALESCE(prof.Income,0) AS Income"
+						+ "\n FROM tblTestBug2297_2 e LEFT JOIN tmpOrders prof ON e.id = prof.id"
+						+ "\n WHERE e.CreatedOn > '2006-08-01') AS Final ORDER BY id;"
+						+ "\nEND");
 
-		this.stmt.executeUpdate("INSERT INTO tblTestBug2297_1 (`id`,`Income`) VALUES "
-				+ "('a',4094.00),"
-				+ "('b',500.00),"
-				+ "('c',3462.17),"
-				+ " ('d',500.00),"
-				+ " ('e',600.00)");
+		this.stmt
+				.executeUpdate("INSERT INTO tblTestBug2297_1 (`id`,`Income`) VALUES "
+						+ "('a',4094.00),"
+						+ "('b',500.00),"
+						+ "('c',3462.17),"
+						+ " ('d',500.00)," + " ('e',600.00)");
 
-		this.stmt.executeUpdate("INSERT INTO tblTestBug2297_2 (`id`,`CreatedOn`) VALUES "
-				+ "('d','2006-08-31 00:00:00'),"
-				+ "('e','2006-08-31 00:00:00'),"
-				+ "('b','2006-08-31 00:00:00'),"
-				+ "('c','2006-08-31 00:00:00'),"
-				+ "('a','2006-08-31 00:00:00')");
+		this.stmt
+				.executeUpdate("INSERT INTO tblTestBug2297_2 (`id`,`CreatedOn`) VALUES "
+						+ "('d','2006-08-31 00:00:00'),"
+						+ "('e','2006-08-31 00:00:00'),"
+						+ "('b','2006-08-31 00:00:00'),"
+						+ "('c','2006-08-31 00:00:00'),"
+						+ "('a','2006-08-31 00:00:00')");
 
 		try {
 			this.pstmt = this.conn.prepareStatement("{CALL testBug22297(?)}");
 			this.pstmt.setInt(1, 1);
-			this.rs =this.pstmt.executeQuery();
+			this.rs = this.pstmt.executeQuery();
 
-			String[] ids = new String[] { "a", "b", "c", "d", "e"};
+			String[] ids = new String[] { "a", "b", "c", "d", "e" };
 			int pos = 0;
 
 			while (this.rs.next()) {
@@ -858,10 +863,10 @@
 		}
 
 		this.stmt
-		.executeUpdate("DROP PROCEDURE IF EXISTS testHugeNumberOfParameters");
+				.executeUpdate("DROP PROCEDURE IF EXISTS testHugeNumberOfParameters");
 
 		StringBuffer procDef = new StringBuffer(
-		"CREATE PROCEDURE testHugeNumberOfParameters(");
+				"CREATE PROCEDURE testHugeNumberOfParameters(");
 
 		for (int i = 0; i < 274; i++) {
 			if (i != 0) {
@@ -878,15 +883,15 @@
 
 		try {
 			cStmt = this.conn
-			.prepareCall("{call testHugeNumberOfParameters(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+
+					.prepareCall("{call testHugeNumberOfParameters(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
+							+
 
-					"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
+							"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
+							+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
+							+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
+							+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
+							+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
+							+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
 			cStmt.registerOutParameter(274, Types.VARCHAR);
 
 			cStmt.execute();
@@ -902,10 +907,9 @@
 			return;
 		}
 
-
 		this.stmt.executeUpdate("Drop procedure if exists p");
 		this.stmt
-		.executeUpdate("create procedure p () begin select 1; select 2; end;");
+				.executeUpdate("create procedure p () begin select 1; select 2; end;");
 		PreparedStatement ps = null;
 
 		try {
@@ -934,9 +938,11 @@
 	}
 
 	/**
-	 * Tests fix for BUG#25379 - INOUT parameters in CallableStatements get doubly-escaped.
+	 * Tests fix for BUG#25379 - INOUT parameters in CallableStatements get
+	 * doubly-escaped.
 	 * 
-	 * @throws Exception if the test fails.
+	 * @throws Exception
+	 *             if the test fails.
 	 */
 	public void testBug25379() throws Exception {
 		if (!serverSupportsStoredProcedures()) {
@@ -947,33 +953,37 @@
 
 		try {
 			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS sp_testBug25379");
-			this.stmt.executeUpdate("CREATE PROCEDURE sp_testBug25379 (INOUT invalue char(255))"
-					+ "\nBEGIN"
-					+ "\ninsert into testBug25379(col) values(invalue);"
-					+ "\nEND");
+			this.stmt
+					.executeUpdate("CREATE PROCEDURE sp_testBug25379 (INOUT invalue char(255))"
+							+ "\nBEGIN"
+							+ "\ninsert into testBug25379(col) values(invalue);"
+							+ "\nEND");
 
-
-			CallableStatement cstmt = this.conn.prepareCall("{call sp_testBug25379(?)}");
-			cstmt.setString(1,"'john'");
+			CallableStatement cstmt = this.conn
+					.prepareCall("{call sp_testBug25379(?)}");
+			cstmt.setString(1, "'john'");
 			cstmt.executeUpdate();
 			assertEquals("'john'", cstmt.getString(1));
-			assertEquals("'john'", getSingleValue("testBug25379", "col", "").toString());
+			assertEquals("'john'", getSingleValue("testBug25379", "col", "")
+					.toString());
 		} finally {
 			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS sp_testBug25379");
 		}
 	}
 
 	/**
-	 * Tests fix for BUG#25715 - CallableStatements with OUT/INOUT parameters that
-	 * are "binary" have extra 7 bytes (which happens to be the _binary introducer!)
+	 * Tests fix for BUG#25715 - CallableStatements with OUT/INOUT parameters
+	 * that are "binary" have extra 7 bytes (which happens to be the _binary
+	 * introducer!)
 	 * 
-	 * @throws Exception if the test fails.
+	 * @throws Exception
+	 *             if the test fails.
 	 */
 	public void testBug25715() throws Exception {
 		if (!serverSupportsStoredProcedures()) {
 			return; // no stored procs
 		}
-		
+
 		if (isRunningOnJdk131()) {
 			return; // no such method to test
 		}
@@ -990,8 +1000,9 @@
 				buf[i] = 1;
 			int il = buf.length;
 
-			int[] typesToTest = new int[] { Types.BIT, Types.BINARY, Types.BLOB, Types.JAVA_OBJECT,
-					Types.LONGVARBINARY, Types.VARBINARY };
+			int[] typesToTest = new int[] { Types.BIT, Types.BINARY,
+					Types.BLOB, Types.JAVA_OBJECT, Types.LONGVARBINARY,
+					Types.VARBINARY };
 
 			for (int i = 0; i < typesToTest.length; i++) {
 
@@ -1040,10 +1051,9 @@
 
 		this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug26143");
 
-		this.stmt.executeUpdate("CREATE DEFINER=CURRENT_USER PROCEDURE testBug26143(I INT) COMMENT 'abcdefg'"
-				+ "\nBEGIN\n"
-				+ "SELECT I * 10;"
-				+ "\nEND");
+		this.stmt
+				.executeUpdate("CREATE DEFINER=CURRENT_USER PROCEDURE testBug26143(I INT) COMMENT 'abcdefg'"
+						+ "\nBEGIN\n" + "SELECT I * 10;" + "\nEND");
 
 		this.conn.prepareCall("{call testBug26143(?)").close();
 	}
@@ -1051,7 +1061,8 @@
 	/**
 	 * Tests fix for BUG#26959 - comments confuse procedure parser.
 	 * 
-	 * @throws Exception if the test fails
+	 * @throws Exception
+	 *             if the test fails
 	 */
 	public void testBug26959() throws Exception {
 		if (!serverSupportsStoredProcedures()) {
@@ -1061,36 +1072,36 @@
 		createProcedure(
 				"testBug26959",
 				"(_ACTION varchar(20),"
-				+ "\n`/*dumb-identifier-1*/` int,"
-				+ "\n`#dumb-identifier-2` int,"
-				+ "\n`--dumb-identifier-3` int,"
-				+ "\n_CLIENT_ID int, -- ABC"
-				+ "\n_LOGIN_ID  int, # DEF"
-				+ "\n_WHERE varchar(2000),"
-				+ "\n_SORT varchar(2000),"
-				+ "\n out _SQL varchar(/* inline right here - oh my gosh! */ 8000),"
-				+ "\n _SONG_ID int,"
-				+ "\n  _NOTES varchar(2000),"
-				+ "\n out _RESULT varchar(10)"
-				+ "\n /*"
-				+ "\n ,    -- Generic result parameter"
-				+ "\n out _PERIOD_ID int,         -- Returns the period_id. Useful when using @PREDEFLINK to return which is the last period"
-				+ "\n   _SONGS_LIST varchar(8000),"
-				+ "\n  _COMPOSERID int,"
-				+ "\n  _PUBLISHERID int,"
-				+ "\n   _PREDEFLINK int        -- If the user is accessing through a predefined link: 0=none  1=last period"
-				+ "\n */) BEGIN SELECT 1; END");
+						+ "\n`/*dumb-identifier-1*/` int,"
+						+ "\n`#dumb-identifier-2` int,"
+						+ "\n`--dumb-identifier-3` int,"
+						+ "\n_CLIENT_ID int, -- ABC"
+						+ "\n_LOGIN_ID  int, # DEF"
+						+ "\n_WHERE varchar(2000),"
+						+ "\n_SORT varchar(2000),"
+						+ "\n out _SQL varchar(/* inline right here - oh my gosh! */ 8000),"
+						+ "\n _SONG_ID int,"
+						+ "\n  _NOTES varchar(2000),"
+						+ "\n out _RESULT varchar(10)"
+						+ "\n /*"
+						+ "\n ,    -- Generic result parameter"
+						+ "\n out _PERIOD_ID int,         -- Returns the period_id. Useful when using @PREDEFLINK to return which is the last period"
+						+ "\n   _SONGS_LIST varchar(8000),"
+						+ "\n  _COMPOSERID int,"
+						+ "\n  _PUBLISHERID int,"
+						+ "\n   _PREDEFLINK int        -- If the user is accessing through a predefined link: 0=none  1=last period"
+						+ "\n */) BEGIN SELECT 1; END");
 
 		createProcedure(
 				"testBug26959_1",
 				"(`/*id*/` /* before type 1 */ varchar(20),"
-				+ "/* after type 1 */ OUT result2 DECIMAL(/*size1*/10,/*size2*/2) /* p2 */)"
-				+ "BEGIN SELECT action, result; END");
+						+ "/* after type 1 */ OUT result2 DECIMAL(/*size1*/10,/*size2*/2) /* p2 */)"
+						+ "BEGIN SELECT action, result; END");
 
 		try {
 			this.conn.prepareCall(
-			"{call testBug26959(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}")
-			.close();
+					"{call testBug26959(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}")
+					.close();
 			this.rs = this.conn.getMetaData().getProcedureColumns(
 					this.conn.getCatalog(), null, "testBug26959", "%");
 
@@ -1169,13 +1180,17 @@
 			return; // SPs not supported
 		}
 
-		createProcedure("testBug27400", "(a INT, b VARCHAR(32)) BEGIN SELECT 1; END");
+		createProcedure("testBug27400",
+				"(a INT, b VARCHAR(32)) BEGIN SELECT 1; END");
 
 		CallableStatement cStmt = null;
 
 		try {
-			cStmt = this.conn.prepareCall("{CALL /* SOME COMMENT */ testBug27400( /* does this work too? */ ?, ?)} # and a commented ? here too");
-			assertTrue(cStmt.toString().indexOf("/*") != -1); // we don't want to strip the comments
+			cStmt = this.conn
+					.prepareCall("{CALL /* SOME COMMENT */ testBug27400( /* does this work too? */ ?, ?)} # and a commented ? here too");
+			assertTrue(cStmt.toString().indexOf("/*") != -1); // we don't want
+																// to strip the
+																// comments
 			cStmt.setInt(1, 1);
 			cStmt.setString(2, "bleh");
 			cStmt.execute();
@@ -1185,15 +1200,15 @@
 			}
 		}
 	}
-	
+
 	/**
-	 * Tests fix for BUG#28689 - CallableStatement.executeBatch()
-	 * doesn't work when connection property "noAccessToProcedureBodies"
-	 * has been set to "true".
+	 * Tests fix for BUG#28689 - CallableStatement.executeBatch() doesn't work
+	 * when connection property "noAccessToProcedureBodies" has been set to
+	 * "true".
 	 * 
-	 * The fix involves changing the behavior of "noAccessToProcedureBodies",
-	 * in that the driver will now report all paramters as "IN" paramters
-	 * but allow callers to call registerOutParameter() on them.
+	 * The fix involves changing the behavior of "noAccessToProcedureBodies", in
+	 * that the driver will now report all paramters as "IN" paramters but allow
+	 * callers to call registerOutParameter() on them.
 	 * 
 	 * @throws Exception
 	 */
@@ -1201,46 +1216,51 @@
 		if (!versionMeetsMinimum(5, 0)) {
 			return; // no stored procedures
 		}
-		
+
 		createTable("testBug28689", "(" +
-				
-				  "`id` int(11) NOT NULL auto_increment,"
-				  + "`usuario` varchar(255) default NULL,"
-				  + "PRIMARY KEY  (`id`)"
-				+ ")"); 
 
-		this.stmt.executeUpdate("INSERT INTO testBug28689 (usuario) VALUES ('AAAAAA')");
+		"`id` int(11) NOT NULL auto_increment,"
+				+ "`usuario` varchar(255) default NULL,"
+				+ "PRIMARY KEY  (`id`)" + ")");
 
-		createProcedure("sp_testBug28689", "(tid INT)"
-				+ "\nBEGIN"
-				+ "\nUPDATE testBug28689 SET usuario = 'BBBBBB' WHERE id = tid;"
-				+ "\nEND");
+		this.stmt
+				.executeUpdate("INSERT INTO testBug28689 (usuario) VALUES ('AAAAAA')");
 
+		createProcedure(
+				"sp_testBug28689",
+				"(tid INT)"
+						+ "\nBEGIN"
+						+ "\nUPDATE testBug28689 SET usuario = 'BBBBBB' WHERE id = tid;"
+						+ "\nEND");
+
 		Connection noProcedureBodiesConn = getConnectionWithProps("noAccessToProcedureBodies=true");
 		CallableStatement cStmt = null;
-		
+
 		try {
-			cStmt = noProcedureBodiesConn.prepareCall("{CALL sp_testBug28689(?)}");
+			cStmt = noProcedureBodiesConn
+					.prepareCall("{CALL sp_testBug28689(?)}");
 			cStmt.setInt(1, 1);
 			cStmt.addBatch();
 			cStmt.executeBatch();
-			
-			assertEquals("BBBBBB", getSingleIndexedValueWithQuery(noProcedureBodiesConn, 1, "SELECT `usuario` FROM testBug28689 WHERE id=1"));
+
+			assertEquals("BBBBBB", getSingleIndexedValueWithQuery(
+					noProcedureBodiesConn, 1,
+					"SELECT `usuario` FROM testBug28689 WHERE id=1"));
 		} finally {
 			if (cStmt != null) {
 				cStmt.close();
 			}
-			
+
 			if (noProcedureBodiesConn != null) {
 				noProcedureBodiesConn.close();
 			}
 		}
 	}
-	
-	/** 
+
+	/**
 	 * Tests fix for Bug#31823 - CallableStatement.setNull() on a stored
-	 * function would throw an ArrayIndexOutOfBounds when setting the 
-	 * last parameter to null when calling setNull().
+	 * function would throw an ArrayIndexOutOfBounds when setting the last
+	 * parameter to null when calling setNull().
 	 * 
 	 * @throws Exception
 	 */
@@ -1391,20 +1411,21 @@
 			}
 		}
 	}
-	
+
 	/**
-	 * Tests fix for Bug#32246 - When unpacking rows directly, we don't
-	 * hand off error message packets to the internal method which decodes
-	 * them correctly, so no exception is rasied, and the driver than hangs
-	 * trying to read rows that aren't there...
+	 * Tests fix for Bug#32246 - When unpacking rows directly, we don't hand off
+	 * error message packets to the internal method which decodes them
+	 * correctly, so no exception is rasied, and the driver than hangs trying to
+	 * read rows that aren't there...
 	 * 
-	 * @throws Exception if the test fails
+	 * @throws Exception
+	 *             if the test fails
 	 */
 	public void testBug32246() throws Exception {
 		if (!versionMeetsMinimum(5, 0)) {
 			return;
 		}
-		
+
 		doBug32246(this.conn);
 		dropTable("test_table_2");
 		dropTable("test_table_1");
@@ -1412,46 +1433,53 @@
 	}
 
 	private void doBug32246(Connection aConn) throws SQLException {
-		createTable("test_table_1", "(value_1 BIGINT PRIMARY KEY) ENGINE=InnoDB");
+		createTable("test_table_1",
+				"(value_1 BIGINT PRIMARY KEY) ENGINE=InnoDB");
 		this.stmt.executeUpdate("INSERT INTO test_table_1 VALUES (1)");
-		createTable("test_table_2", "(value_2 BIGINT PRIMARY KEY) ENGINE=InnoDB");
+		createTable("test_table_2",
+				"(value_2 BIGINT PRIMARY KEY) ENGINE=InnoDB");
 		this.stmt.executeUpdate("DROP FUNCTION IF EXISTS test_function");
-		createFunction("test_function", "() RETURNS BIGINT " +
-				"DETERMINISTIC MODIFIES SQL DATA BEGIN " +
-				"DECLARE max_value BIGINT; " +
-				"SELECT MAX(value_1) INTO max_value FROM test_table_2; " +
-				"RETURN max_value; END;");
+		createFunction("test_function", "() RETURNS BIGINT "
+				+ "DETERMINISTIC MODIFIES SQL DATA BEGIN "
+				+ "DECLARE max_value BIGINT; "
+				+ "SELECT MAX(value_1) INTO max_value FROM test_table_2; "
+				+ "RETURN max_value; END;");
 
 		CallableStatement callable = null;
-		
+
 		try {
 			callable = aConn.prepareCall("{? = call test_function()}");
 
-			callable.registerOutParameter(1,Types.BIGINT);
-	
+			callable.registerOutParameter(1, Types.BIGINT);
+
 			try {
 				callable.executeUpdate();
 				fail("impossible; we should never get here.");
 			} catch (SQLException sqlEx) {
 				assertEquals("42S22", sqlEx.getSQLState());
 			}
-			
-			createTable("test_table_1", "(value_1 BIGINT PRIMARY KEY) ENGINE=InnoDB");
+
+			createTable("test_table_1",
+					"(value_1 BIGINT PRIMARY KEY) ENGINE=InnoDB");
 			this.stmt.executeUpdate("INSERT INTO test_table_1 VALUES (1)");
-			createTable("test_table_2", "(value_2 BIGINT PRIMARY KEY, " +
-					" FOREIGN KEY (value_2) REFERENCES test_table_1 (value_1) ON DELETE CASCADE) ENGINE=InnoDB");
-			createFunction("test_function", "(value BIGINT) RETURNS BIGINT " +
-					"DETERMINISTIC MODIFIES SQL DATA BEGIN " +
-					"INSERT INTO test_table_2 VALUES (value); RETURN value; END;"); 
-	
+			createTable(
+					"test_table_2",
+					"(value_2 BIGINT PRIMARY KEY, "
+							+ " FOREIGN KEY (value_2) REFERENCES test_table_1 (value_1) ON DELETE CASCADE) ENGINE=InnoDB");
+			createFunction(
+					"test_function",
+					"(value BIGINT) RETURNS BIGINT "
+							+ "DETERMINISTIC MODIFIES SQL DATA BEGIN "
+							+ "INSERT INTO test_table_2 VALUES (value); RETURN value; END;");
+
 			callable = aConn.prepareCall("{? = call test_function(?)}");
-			callable.registerOutParameter(1,Types.BIGINT);
-	
-			callable.setLong(2,1);
+			callable.registerOutParameter(1, Types.BIGINT);
+
+			callable.setLong(2, 1);
 			callable.executeUpdate();
-	
-			callable.setLong(2,2);
-			
+
+			callable.setLong(2, 2);
+
 			try {
 				callable.executeUpdate();
 				fail("impossible; we should never get here.");
@@ -1464,4 +1492,55 @@
 			}
 		}
 	}
+
+	public void testBitSp() throws Exception {
+		if (!versionMeetsMinimum(5, 0)) {
+			return;
+		}
+
+		createTable("`Bit_Tab`", "(" + " `MAX_VAL` tinyint(1) default NULL,"
+				+ " `MIN_VAL` tinyint(1) default NULL,"
+				+ " `NULL_VAL` tinyint(1) default NULL)");
+
+		createProcedure(
+				"Bit_Proc",
+				"(out MAX_PARAM TINYINT, out MIN_PARAM TINYINT, out NULL_PARAM TINYINT)"
+						+ "begin select MAX_VAL, MIN_VAL, NULL_VAL  into MAX_PARAM, MIN_PARAM, NULL_PARAM from Bit_Tab; end");
+
+		Boolean minBooleanVal;
+		Boolean oRetVal;
+
+		String Min_Val_Query = "SELECT MIN_VAL from Bit_Tab";
+		String sMaxBooleanVal = "1";
+		// sMaxBooleanVal = "true";
+		Boolean bool = Boolean.valueOf("true");
+		String Min_Insert = "insert into Bit_Tab values(1,0,null)";
+		// System.out.println("Value to insert=" + extractVal(Min_Insert,1));
+		CallableStatement cstmt;
+
+		stmt.executeUpdate("delete from Bit_Tab");
+		stmt.executeUpdate(Min_Insert);
+		cstmt = conn.prepareCall("{call Bit_Proc(?,?,?)}");
+
+		System.out.println("register the output parameters");
+		cstmt.registerOutParameter(1, java.sql.Types.BIT);
+		cstmt.registerOutParameter(2, java.sql.Types.BIT);
+		cstmt.registerOutParameter(3, java.sql.Types.BIT);
+
+		System.out.println("execute the procedure");
+		cstmt.executeUpdate();
+
+		System.out.println("invoke getBoolean method");
+		boolean bRetVal = cstmt.getBoolean(2);
+		oRetVal = new Boolean(bRetVal);
+		minBooleanVal = new Boolean("false");
+		rs = stmt.executeQuery(Min_Val_Query);
+		if (oRetVal.equals(minBooleanVal))
+			System.out.println("getBoolean returns the Minimum value ");
+		else {
+			System.out
+					.println("getBoolean() did not return the Minimum value, getBoolean Failed!");
+
+		}
+	}
 }
\ No newline at end of file

Modified: branches/branch_5_1/src/testsuite/regression/ResultSetRegressionTest.java
===================================================================
--- branches/branch_5_1/src/testsuite/regression/ResultSetRegressionTest.java	2008-01-20 03:53:35 UTC (rev 6714)
+++ branches/branch_5_1/src/testsuite/regression/ResultSetRegressionTest.java	2008-01-20 03:53:53 UTC (rev 6715)
@@ -25,6 +25,7 @@
 package testsuite.regression;
 
 import java.io.Reader;
+import java.lang.reflect.Array;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.math.BigDecimal;
@@ -54,6 +55,7 @@
 import com.mysql.jdbc.MysqlDataTruncation;
 import com.mysql.jdbc.NotUpdatable;
 import com.mysql.jdbc.SQLError;
+import com.mysql.jdbc.StringUtils;
 import com.mysql.jdbc.Util;
 import com.mysql.jdbc.log.StandardLogger;
 
@@ -4460,7 +4462,7 @@
 			this.stmt
 					.executeUpdate("insert into testBug30664_1 values (1),(2),(3)");
 			this.stmt
-					.executeUpdate("insert into testBug30664_2 values (1,'+					.executeUpdate("insert into testBug30664_2 values (1,'���'),(2,'����'),(3,' ���')");
 			this.rs = this.stmt
 					.executeQuery("select testBug30664_1.id, (select testBug30664_2.binaryvalue from testBug30664_2 where testBug30664_2.id=testBug30664_1.id) as value from testBug30664_1");
 			ResultSetMetaData tblMD = this.rs.getMetaData();
@@ -4508,7 +4510,7 @@
 		}        
 	}
 	
-	/**
+		/**
 	 * Tests fix for Bug#33678 - Multiple result sets not supported in
 	 * "streaming" mode. This fix covers both normal statements, and stored
 	 * procedures, with the exception of stored procedures with registered 
@@ -4588,4 +4590,15 @@
 			closeMemberJDBCResources();
 		}
 	}
+	
+	public void testBug33162() throws Exception {
+		if (!versionMeetsMinimum(5, 0)) {
+			return;
+		}
+		
+		this.rs = this.stmt.executeQuery("select now() from dual where 1=0");
+		this.rs.next();
+		this.rs.getTimestamp(1);  // fails
+	}
+	
 }

Thread
Connector/J commit: r6715 - branches/branch_5_1/src/testsuite/regressionmmatthews20 Jan