List:Commits« Previous MessageNext Message »
From:mmatthews Date:December 4 2007 4:44pm
Subject:Connector/J commit: r6691 - trunk/src/testsuite/regression
View as plain text  
Modified:
   trunk/src/testsuite/regression/CallableStatementRegressionTest.java
Log:
Post-merge fixup.

Modified: trunk/src/testsuite/regression/CallableStatementRegressionTest.java
===================================================================
--- trunk/src/testsuite/regression/CallableStatementRegressionTest.java	2007-12-04 16:15:49 UTC (rev 6690)
+++ trunk/src/testsuite/regression/CallableStatementRegressionTest.java	2007-12-04 16:44:56 UTC (rev 6691)
@@ -1,4 +1,3 @@
-<<<<<<< .working
 /*
  Copyright (C) 2002-2007 MySQL AB
 
@@ -1474,1407 +1473,4 @@
 			}
 		}
 	}
-}=======
-/*
- Copyright (C) 2002-2007 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of version 2 of the GNU General Public License as 
- published by the Free Software Foundation.
-
- There are special exceptions to the terms and conditions of the GPL 
- as it is applied to this software. View the full text of the 
- exception in file EXCEPTIONS-CONNECTOR-J in the directory of this 
- software distribution.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-
- */
-package testsuite.regression;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.sql.CallableStatement;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.util.List;
-import java.util.Properties;
-
-import com.mysql.jdbc.DatabaseMetaData;
-import com.mysql.jdbc.NonRegisteringDriver;
-import com.mysql.jdbc.SQLError;
-import com.mysql.jdbc.StringUtils;
-
-import testsuite.BaseTestCase;
-
-/**
- * Tests fixes for bugs in CallableStatement code.
- * 
- * @version $Id: CallableStatementRegressionTest.java,v 1.1.2.6 2004/12/09
- *          15:57:26 mmatthew Exp $
- */
-public class CallableStatementRegressionTest extends BaseTestCase {
-	/**
-	 * DOCUMENT ME!
-	 * 
-	 * @param name
-	 */
-	public CallableStatementRegressionTest(String name) {
-		super(name);
-
-		// TODO Auto-generated constructor stub
-	}
-
-	/**
-	 * Runs all test cases in this test suite
-	 * 
-	 * @param args
-	 *            ignored
-	 */
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(CallableStatementRegressionTest.class);
-	}
-
-	/**
-	 * Tests fix for BUG#3539 getProcedures() does not return any procedures in
-	 * result set
-	 * 
-	 * @throws Exception
-	 *             if an error occurs.
-	 */
-	public void testBug3539() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		try {
-			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug3539");
-			this.stmt.executeUpdate("CREATE PROCEDURE testBug3539()\n"
-					+ "BEGIN\n" + "SELECT 1;" + "end\n");
-
-			this.rs = this.conn.getMetaData().getProcedures(null, null,
-			"testBug3539");
-
-			assertTrue(this.rs.next());
-			assertTrue("testBug3539".equals(this.rs.getString(3)));
-		} finally {
-			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug3539");
-		}
-	}
-
-	/**
-	 * Tests fix for BUG#3540 getProcedureColumns doesn't work with wildcards
-	 * for procedure name
-	 * 
-	 * @throws Exception
-	 *             if an error occurs.
-	 */
-	public void testBug3540() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-		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");
-
-			this.rs = this.conn.getMetaData().getProcedureColumns(null,
-					null, "testBug3540%", "%");
-
-			assertTrue(this.rs.next());
-			assertTrue("testBug3540".equals(this.rs.getString(3)));
-			assertTrue("x".equals(this.rs.getString(4)));
-
-			assertTrue(this.rs.next());
-			assertTrue("testBug3540".equals(this.rs.getString(3)));
-			assertTrue("y".equals(this.rs.getString(4)));
-
-			assertTrue(!this.rs.next());
-		} finally {
-			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug3540");
-		}
-	}
-
-	/**
-	 * Tests fix for BUG#7026 - DBMD.getProcedures() doesn't respect catalog
-	 * parameter
-	 * 
-	 * @throws Exception
-	 *             if the test fails.
-	 */
-	public void testBug7026() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		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");
-
-			//
-			// Should be found this time.
-			//
-			this.rs = this.conn.getMetaData().getProcedures(
-					this.conn.getCatalog(), null, "testBug7026");
-
-			assertTrue(this.rs.next());
-			assertTrue("testBug7026".equals(this.rs.getString(3)));
-
-			assertTrue(!this.rs.next());
-
-			//
-			// This time, shouldn't be found, because not associated with
-			// this (bogus) catalog
-			//
-			this.rs = this.conn.getMetaData().getProcedures("abfgerfg",
-					null, "testBug7026");
-			assertTrue(!this.rs.next());
-
-			//
-			// Should be found this time as well, as we haven't
-			// specified a catalog.
-			//
-			this.rs = this.conn.getMetaData().getProcedures(null, null,
-			"testBug7026");
-
-			assertTrue(this.rs.next());
-			assertTrue("testBug7026".equals(this.rs.getString(3)));
-
-			assertTrue(!this.rs.next());
-		} finally {
-			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug7026");
-		}
-	}
-
-	/**
-	 * Tests fix for BUG#9319 -- Stored procedures with same name in different
-	 * databases confuse the driver when it tries to determine parameter
-	 * counts/types.
-	 * 
-	 * @throws Exception
-	 *             if the test fails
-	 */
-	public void testBug9319() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		boolean doASelect = true; // SELECT currently causes the server to
-		// hang on the
-		// last execution of this testcase, filed as BUG#9405
-
-
-		if (isAdminConnectionConfigured()) {
-			Connection db2Connection = null;
-			Connection db1Connection = null;
-
-			try {
-				db2Connection = getAdminConnection();
-				db1Connection = getAdminConnection();
-
-				db2Connection.createStatement().executeUpdate(
-						"CREATE DATABASE IF NOT EXISTS db_9319_2");
-				db2Connection.setCatalog("db_9319_2");
-
-				db2Connection.createStatement().executeUpdate(
-				"DROP PROCEDURE IF EXISTS COMPROVAR_USUARI");
-
-				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"
-
-						+ (doASelect ? "\nselect 2;"
-								: "\nSELECT 2 INTO p_administrador;")
-								+ "\nEND");
-
-				db1Connection.createStatement().executeUpdate(
-				"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(
-						"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;")
-								+ "\nEND");
-
-				CallableStatement cstmt = db2Connection
-				.prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?, ?) }");
-				cstmt.setString(1, "abc");
-				cstmt.setString(2, "def");
-				cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
-				cstmt.registerOutParameter(4, java.sql.Types.VARCHAR);
-				cstmt.registerOutParameter(5, java.sql.Types.VARCHAR);
-
-				cstmt.registerOutParameter(6, java.sql.Types.VARCHAR);
-
-				cstmt.execute();
-
-				if (doASelect) {
-					this.rs = cstmt.getResultSet();
-					assertTrue(this.rs.next());
-					assertEquals(2, this.rs.getInt(1));
-				} else {
-					assertEquals(2, cstmt.getInt(5));
-				}
-
-				cstmt = db1Connection
-				.prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?, ?) }");
-				cstmt.setString(1, "abc");
-				cstmt.setString(2, "def");
-				cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
-				cstmt.registerOutParameter(4, java.sql.Types.VARCHAR);
-				cstmt.registerOutParameter(5, java.sql.Types.VARCHAR);
-
-				try {
-					cstmt.registerOutParameter(6, java.sql.Types.VARCHAR);
-					fail("Should've thrown an exception");
-				} catch (SQLException sqlEx) {
-					assertEquals(SQLError.SQL_STATE_ILLEGAL_ARGUMENT, sqlEx
-							.getSQLState());
-				}
-
-				cstmt = db1Connection
-				.prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?) }");
-				cstmt.setString(1, "abc");
-				cstmt.setString(2, "def");
-				cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
-				cstmt.registerOutParameter(4, java.sql.Types.VARCHAR);
-				cstmt.registerOutParameter(5, java.sql.Types.VARCHAR);
-
-				cstmt.execute();
-
-				if (doASelect) {
-					this.rs = cstmt.getResultSet();
-					assertTrue(this.rs.next());
-					assertEquals(1, this.rs.getInt(1));
-				} else {
-					assertEquals(1, cstmt.getInt(5));
-				}
-
-				String quoteChar = db2Connection.getMetaData()
-				.getIdentifierQuoteString();
-
-				cstmt = db2Connection.prepareCall("{ call " + quoteChar
-						+ db1Connection.getCatalog() + quoteChar + "."
-						+ quoteChar + "COMPROVAR_USUARI" + quoteChar
-						+ "(?, ?, ?, ?, ?) }");
-				cstmt.setString(1, "abc");
-				cstmt.setString(2, "def");
-				cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
-				cstmt.registerOutParameter(4, java.sql.Types.VARCHAR);
-				cstmt.registerOutParameter(5, java.sql.Types.VARCHAR);
-
-				cstmt.execute();
-
-				if (doASelect) {
-					this.rs = cstmt.getResultSet();
-					assertTrue(this.rs.next());
-					assertEquals(1, this.rs.getInt(1));
-				} else {
-					assertEquals(1, cstmt.getInt(5));
-				}
-			} finally {
-				if (db2Connection != null) {
-					db2Connection.createStatement().executeUpdate(
-							"DROP PROCEDURE IF EXISTS COMPROVAR_USUARI");
-					db2Connection.createStatement().executeUpdate(
-					"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");
-				}
-			}
-		}
-	}
-
-	/*
-	 * public void testBug9319() throws Exception { boolean doASelect = false; //
-	 * SELECT currently causes the server to hang on the // last execution of
-	 * this testcase, filed as BUG#9405
-	 * 
-	 * if (versionMeetsMinimum(5, 0, 2)) { if (isAdminConnectionConfigured()) {
-	 * Connection db2Connection = null; Connection db1Connection = null;
-	 * 
-	 * try { db2Connection = getAdminConnection();
-	 * 
-	 * db2Connection.createStatement().executeUpdate( "CREATE DATABASE IF NOT
-	 * EXISTS db_9319"); db2Connection.setCatalog("db_9319");
-	 * 
-	 * db2Connection.createStatement().executeUpdate( "DROP PROCEDURE IF EXISTS
-	 * COMPROVAR_USUARI");
-	 * 
-	 * 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" + (doASelect ? "\nselect 2;" : "\nSELECT 2 INTO
-	 * p_administrador;" ) + "\nEND");
-	 * 
-	 * this.stmt .executeUpdate("DROP PROCEDURE IF EXISTS COMPROVAR_USUARI");
-	 * this.stmt .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;" ) + "\nEND");
-	 * 
-	 * CallableStatement cstmt = db2Connection .prepareCall("{ call
-	 * COMPROVAR_USUARI(?, ?, ?, ?, ?, ?) }"); cstmt.setString(1, "abc");
-	 * cstmt.setString(2, "def"); cstmt.registerOutParameter(3,
-	 * java.sql.Types.INTEGER); cstmt.registerOutParameter(4,
-	 * java.sql.Types.VARCHAR); cstmt.registerOutParameter(5,
-	 * java.sql.Types.VARCHAR);
-	 * 
-	 * cstmt.registerOutParameter(6, java.sql.Types.VARCHAR);
-	 * 
-	 * cstmt.execute();
-	 * 
-	 * if (doASelect) { this.rs = cstmt.getResultSet();
-	 * assertTrue(this.rs.next()); assertEquals(2, this.rs.getInt(1)); } else {
-	 * assertEquals(2, cstmt.getInt(5)); }
-	 * 
-	 * cstmt = this.conn .prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?, ?)
-	 * }"); cstmt.setString(1, "abc"); cstmt.setString(2, "def");
-	 * cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
-	 * cstmt.registerOutParameter(4, java.sql.Types.VARCHAR);
-	 * cstmt.registerOutParameter(5, java.sql.Types.VARCHAR);
-	 * 
-	 * try { cstmt.registerOutParameter(6, java.sql.Types.VARCHAR);
-	 * fail("Should've thrown an exception"); } catch (SQLException sqlEx) {
-	 * assertEquals(SQLError.SQL_STATE_ILLEGAL_ARGUMENT, sqlEx .getSQLState()); }
-	 * 
-	 * cstmt = this.conn .prepareCall("{ call COMPROVAR_USUARI(?, ?, ?, ?, ?)
-	 * }"); cstmt.setString(1, "abc"); cstmt.setString(2, "def");
-	 * cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
-	 * cstmt.registerOutParameter(4, java.sql.Types.VARCHAR);
-	 * cstmt.registerOutParameter(5, java.sql.Types.VARCHAR);
-	 * 
-	 * cstmt.execute();
-	 * 
-	 * if (doASelect) { this.rs = cstmt.getResultSet();
-	 * assertTrue(this.rs.next()); assertEquals(1, this.rs.getInt(1)); } else {
-	 * assertEquals(1, cstmt.getInt(5)); }
-	 * 
-	 * String quoteChar =
-	 * db2Connection.getMetaData().getIdentifierQuoteString();
-	 * 
-	 * cstmt = db2Connection .prepareCall("{ call " + quoteChar +
-	 * this.conn.getCatalog() + quoteChar + "." + quoteChar + "COMPROVAR_USUARI" +
-	 * quoteChar + "(?, ?, ?, ?, ?) }"); cstmt.setString(1, "abc");
-	 * cstmt.setString(2, "def"); cstmt.registerOutParameter(3,
-	 * java.sql.Types.INTEGER); cstmt.registerOutParameter(4,
-	 * java.sql.Types.VARCHAR); cstmt.registerOutParameter(5,
-	 * java.sql.Types.VARCHAR);
-	 * 
-	 * cstmt.execute();
-	 * 
-	 * if (doASelect) { this.rs = cstmt.getResultSet();
-	 * assertTrue(this.rs.next()); assertEquals(1, this.rs.getInt(1)); } else {
-	 * assertEquals(1, cstmt.getInt(5)); } } finally { if (db2Connection !=
-	 * null) { db2Connection.createStatement().executeUpdate( "DROP PROCEDURE IF
-	 * EXISTS COMPROVAR_USUARI"); //
-	 * db2Connection.createStatement().executeUpdate( // "DROP DATABASE IF
-	 * EXISTS db_9319"); }
-	 * 
-	 * this.stmt .executeUpdate("DROP PROCEDURE IF EXISTS COMPROVAR_USUARI"); } } } }
-	 */
-
-	/**
-	 * Tests fix for BUG#9682 - Stored procedures with DECIMAL parameters with
-	 * storage specifications that contained "," in them would fail.
-	 * 
-	 * @throws Exception
-	 *             if the test fails.
-	 */
-	public void testBug9682() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		CallableStatement cStmt = null;
-
-		try {
-			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug9682");
-			this.stmt
-			.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();
-		} finally {
-			if (cStmt != null) {
-				cStmt.close();
-			}
-
-			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug9682");
-		}
-	}
-
-	/**
-	 * Tests fix forBUG#10310 - Driver doesn't support {?=CALL(...)} for calling
-	 * stored functions. This involved adding support for function retrieval to
-	 * DatabaseMetaData.getProcedures() and getProcedureColumns() as well.
-	 * 
-	 * @throws Exception
-	 *             if the test fails.
-	 */
-	public void testBug10310() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		CallableStatement cStmt = null;
-
-		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");
-			cStmt = this.conn.prepareCall("{? = CALL testBug10310(?,?,?)}");
-			cStmt.registerOutParameter(1, Types.INTEGER);
-			cStmt.setFloat(2, 2);
-			cStmt.setInt(3, 1);
-			cStmt.setInt(4, 1);
-
-			if (!isRunningOnJdk131()) {
-				assertEquals(4, cStmt.getParameterMetaData().getParameterCount());
-				assertEquals(Types.INTEGER, cStmt.getParameterMetaData().getParameterType(1));
-			}
-
-			assertFalse(cStmt.execute());
-			assertEquals(2f, cStmt.getInt(1), .001);
-			assertEquals("java.lang.Integer", cStmt.getObject(1).getClass()
-					.getName());
-
-			assertEquals(-1, cStmt.executeUpdate());
-			assertEquals(2f, cStmt.getInt(1), .001);
-			assertEquals("java.lang.Integer", cStmt.getObject(1).getClass()
-					.getName());
-
-			if (!isRunningOnJdk131()) {
-				cStmt.setFloat("a", 4);
-				cStmt.setInt("b", 1);
-				cStmt.setInt("c", 1);
-
-				assertFalse(cStmt.execute());
-				assertEquals(4f, cStmt.getInt(1), .001);
-				assertEquals("java.lang.Integer", cStmt.getObject(1).getClass()
-						.getName());
-
-				assertEquals(-1, cStmt.executeUpdate());
-				assertEquals(4f, cStmt.getInt(1), .001);
-				assertEquals("java.lang.Integer", cStmt.getObject(1).getClass()
-						.getName());
-			}
-
-			// Check metadata while we're at it
-
-			java.sql.DatabaseMetaData dbmd = this.conn.getMetaData();
-
-			this.rs = dbmd.getProcedures(this.conn.getCatalog(), null,
-			"testBug10310");
-			this.rs.next();
-			assertEquals("testBug10310", this.rs
-					.getString("PROCEDURE_NAME"));
-			assertEquals(DatabaseMetaData.procedureReturnsResult, this.rs
-					.getShort("PROCEDURE_TYPE"));
-			cStmt.setNull(2, Types.FLOAT);
-			cStmt.setInt(3, 1);
-			cStmt.setInt(4, 1);
-
-			assertFalse(cStmt.execute());
-			assertEquals(0f, cStmt.getInt(1), .001);
-			assertEquals(true, cStmt.wasNull());
-			assertEquals(null, cStmt.getObject(1));
-			assertEquals(true, cStmt.wasNull());
-
-			assertEquals(-1, cStmt.executeUpdate());
-			assertEquals(0f, cStmt.getInt(1), .001);
-			assertEquals(true, cStmt.wasNull());
-			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);
-			cStmt.setInt(2, 1);
-
-			assertFalse(cStmt.execute());
-			assertEquals(4f, cStmt.getInt(1), .001);
-			assertEquals("java.lang.Integer", cStmt.getObject(1).getClass()
-					.getName());
-
-			assertEquals(-1, cStmt.executeUpdate());
-			assertEquals(4f, cStmt.getInt(1), .001);
-			assertEquals("java.lang.Integer", cStmt.getObject(1).getClass()
-					.getName());
-
-			if (!isRunningOnJdk131()) {
-				assertEquals(2, cStmt.getParameterMetaData().getParameterCount());
-				assertEquals(Types.INTEGER, cStmt.getParameterMetaData().getParameterType(1));
-				assertEquals(Types.INTEGER, cStmt.getParameterMetaData().getParameterType(2));
-			}
-		} finally {
-			if (this.rs != null) {
-				this.rs.close();
-				this.rs = null;
-			}
-
-			if (cStmt != null) {
-				cStmt.close();
-			}
-
-			this.stmt.executeUpdate("DROP FUNCTION IF EXISTS testBug10310");
-		}
-	}
-
-	/**
-	 * Tests fix for Bug#12417 - stored procedure catalog name is case-sensitive
-	 * on Windows (this is actually a server bug, but we have a workaround in
-	 * place for it now).
-	 * 
-	 * @throws Exception
-	 *             if the test fails.
-	 */
-	public void testBug12417() throws Exception {
-		if (serverSupportsStoredProcedures() && isServerRunningOnWindows()) {
-			Connection ucCatalogConn = null;
-
-			try {
-				this.stmt
-				.executeUpdate("DROP PROCEDURE IF EXISTS testBug12417");
-				this.stmt.executeUpdate("CREATE PROCEDURE testBug12417()\n"
-						+ "BEGIN\n" + "SELECT 1;" + "end\n");
-				ucCatalogConn = getConnectionWithProps((Properties)null);
-				ucCatalogConn.setCatalog(this.conn.getCatalog().toUpperCase());
-				ucCatalogConn.prepareCall("{call testBug12417()}");
-			} finally {
-				this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug3539");
-
-				if (ucCatalogConn != null) {
-					ucCatalogConn.close();
-				}
-			}
-		}
-	}
-
-	public void testBug15121() throws Exception {
-		if (false /* needs to be fixed on server */) {
-			if (versionMeetsMinimum(5, 0)) {
-				this.stmt
-				.executeUpdate("DROP PROCEDURE IF EXISTS p_testBug15121");
-
-				this.stmt.executeUpdate("CREATE PROCEDURE p_testBug15121()\n"
-						+ "BEGIN\n" + "SELECT * from idonotexist;\n" + "END");
-
-				Properties props = new Properties();
-				props.setProperty(NonRegisteringDriver.DBNAME_PROPERTY_KEY, "");
-
-				Connection noDbConn = null;
-
-				try {
-					noDbConn = getConnectionWithProps(props);
-
-					StringBuffer queryBuf = new StringBuffer("{call ");
-					String quotedId = this.conn.getMetaData()
-					.getIdentifierQuoteString();
-					queryBuf.append(quotedId);
-					queryBuf.append(this.conn.getCatalog());
-					queryBuf.append(quotedId);
-					queryBuf.append(".p_testBug15121()}");
-
-					noDbConn.prepareCall(queryBuf.toString()).execute();
-				} finally {
-					if (noDbConn != null) {
-						noDbConn.close();
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Tests fix for BUG#15464 - INOUT parameter does not store IN value.
-	 * 
-	 * @throws Exception
-	 *             if the test fails
-	 */
-
-	public void testBug15464() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-		CallableStatement storedProc = null;
-
-		try {
-			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");
-
-			storedProc = this.conn
-			.prepareCall("{call testInOutParam(?, ?)}");
-
-			storedProc.setString(1, "abcd");
-			storedProc.setInt(2, 4);
-			storedProc.registerOutParameter(2, Types.INTEGER);
-
-			storedProc.execute();
-
-			assertEquals(5, storedProc.getInt(2));
-		} finally {
-			this.stmt
-			.executeUpdate("DROP PROCEDURE IF EXISTS testInOutParam");
-		}
-	}
-
-	/**
-	 * Tests fix for BUG#17898 - registerOutParameter not working when some
-	 * parameters pre-populated. Still waiting for feedback from JDBC experts
-	 * group to determine what correct parameter count from getMetaData() should
-	 * be, however.
-	 * 
-	 * @throws Exception
-	 *             if the test fails
-	 */
-	public void testBug17898() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		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");
-
-		CallableStatement cstmt = this.conn
-		.prepareCall("{CALL testBug17898('foo', ?)}");
-		cstmt.registerOutParameter(1, Types.INTEGER);
-		cstmt.execute();
-		assertEquals(1, cstmt.getInt(1));
-
-		if (!isRunningOnJdk131()) {
-			cstmt.clearParameters();
-			cstmt.registerOutParameter("param2", Types.INTEGER);
-			cstmt.execute();
-			assertEquals(1, cstmt.getInt(1));
-		}
-
-	}
-
-	/**
-	 * 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.
-	 */
-	public void testBug21462() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		CallableStatement cstmt = null;
-
-		try {
-			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug21462");
-			this.stmt.executeUpdate("CREATE PROCEDURE testBug21462() BEGIN SELECT 1; END");
-			cstmt = this.conn.prepareCall("{CALL testBug21462}");
-			cstmt.execute();
-		} finally {
-			if (cstmt != null) {
-				cstmt.close();
-			}
-
-			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug21462");
-		}
-
-	}
-
-	/** 
-	 * 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
-	 */
-	public void testBug22024() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		CallableStatement cstmt = null;
-
-		try {
-			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug22024");
-			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");
-			cstmt = this.conn.prepareCall("{CALL testBug22024(?)}");
-			cstmt.setInt(1, 1);
-			cstmt.execute();
-		} finally {
-			if (cstmt != null) {
-				cstmt.close();
-			}
-
-			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug22024");
-		}
-
-	}
-
-	/**
-	 * 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
-	 */
-	public void testBug22297() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug22297");
-
-		createTable("tblTestBug2297_1", "("
-				+ "id varchar(20) NOT NULL default '',"
-				+ "Income double(19,2) default NULL)");	
-
-		createTable("tblTestBug2297_2", "("
-				+ "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("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')");
-
-		try {
-			this.pstmt = this.conn.prepareStatement("{CALL testBug22297(?)}");
-			this.pstmt.setInt(1, 1);
-			this.rs =this.pstmt.executeQuery();
-
-			String[] ids = new String[] { "a", "b", "c", "d", "e"};
-			int pos = 0;
-
-			while (this.rs.next()) {
-				assertEquals(ids[pos++], rs.getString(1));
-				assertEquals(100, rs.getInt(2));
-			}
-
-			assertTrue(this.pstmt.getClass().getName().indexOf("Server") == -1);
-		} finally {
-			closeMemberJDBCResources();
-		}
-
-	}
-
-	public void testHugeNumberOfParameters() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		this.stmt
-		.executeUpdate("DROP PROCEDURE IF EXISTS testHugeNumberOfParameters");
-
-		StringBuffer procDef = new StringBuffer(
-		"CREATE PROCEDURE testHugeNumberOfParameters(");
-
-		for (int i = 0; i < 274; i++) {
-			if (i != 0) {
-				procDef.append(",");
-			}
-
-			procDef.append(" OUT param_" + i + " VARCHAR(32)");
-		}
-
-		procDef.append(")\nBEGIN\nSELECT 1;\nEND");
-		this.stmt.executeUpdate(procDef.toString());
-
-		CallableStatement cStmt = null;
-
-		try {
-			cStmt = this.conn
-			.prepareCall("{call testHugeNumberOfParameters(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+
-
-					"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,"
-					+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
-			cStmt.registerOutParameter(274, Types.VARCHAR);
-
-			cStmt.execute();
-		} finally {
-			if (cStmt != null) {
-				cStmt.close();
-			}
-		}
-	}
-
-	public void testPrepareOfMultiRs() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-
-		this.stmt.executeUpdate("Drop procedure if exists p");
-		this.stmt
-		.executeUpdate("create procedure p () begin select 1; select 2; end;");
-		PreparedStatement ps = null;
-
-		try {
-			ps = this.conn.prepareStatement("call p()");
-
-			ps.execute();
-			this.rs = ps.getResultSet();
-			assertTrue(this.rs.next());
-			assertEquals(1, this.rs.getInt(1));
-			assertTrue(ps.getMoreResults());
-			this.rs = ps.getResultSet();
-			assertTrue(this.rs.next());
-			assertEquals(2, this.rs.getInt(1));
-			assertTrue(!ps.getMoreResults());
-		} finally {
-			if (this.rs != null) {
-				this.rs.close();
-				this.rs = null;
-			}
-
-			if (ps != null) {
-				ps.close();
-			}
-		}
-
-	}
-
-	/**
-	 * Tests fix for BUG#25379 - INOUT parameters in CallableStatements get doubly-escaped.
-	 * 
-	 * @throws Exception if the test fails.
-	 */
-	public void testBug25379() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		createTable("testBug25379", "(col char(40))");
-
-		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");
-
-
-			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());
-		} 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!)
-	 * 
-	 * @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
-		}
-
-		createProcedure("spbug25715", "(INOUT mblob MEDIUMBLOB)" + "BEGIN"
-				+ " SELECT 1 FROM DUAL WHERE 1=0;" + "\nEND");
-		CallableStatement cstmt = null;
-
-		try {
-			cstmt = this.conn.prepareCall("{call spbug25715(?)}");
-
-			byte[] buf = new byte[65];
-			for (int i = 0; i < 65; i++)
-				buf[i] = 1;
-			int il = buf.length;
-
-			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++) {
-
-				cstmt.setBinaryStream("mblob", new ByteArrayInputStream(buf),
-						buf.length);
-				cstmt.registerOutParameter("mblob", typesToTest[i]);
-
-				cstmt.executeUpdate();
-
-				InputStream is = cstmt.getBlob("mblob").getBinaryStream();
-				ByteArrayOutputStream bOut = new ByteArrayOutputStream();
-
-				int bytesRead = 0;
-				byte[] readBuf = new byte[256];
-
-				while ((bytesRead = is.read(readBuf)) != -1) {
-					bOut.write(readBuf, 0, bytesRead);
-				}
-
-				byte[] fromSelectBuf = bOut.toByteArray();
-
-				int ol = fromSelectBuf.length;
-
-				assertEquals(il, ol);
-			}
-
-			cstmt.close();
-		} finally {
-			closeMemberJDBCResources();
-
-			if (cstmt != null) {
-				cstmt.close();
-			}
-		}
-
-	}
-
-	protected boolean serverSupportsStoredProcedures() throws SQLException {
-		return versionMeetsMinimum(5, 0);
-	}
-
-	public void testBug26143() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return; // no stored procedure support
-		}
-
-		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.conn.prepareCall("{call testBug26143(?)").close();
-	}
-
-	/**
-	 * Tests fix for BUG#26959 - comments confuse procedure parser.
-	 * 
-	 * @throws Exception if the test fails
-	 */
-	public void testBug26959() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return;
-		}
-
-		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");
-
-		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");
-
-		try {
-			this.conn.prepareCall(
-			"{call testBug26959(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}")
-			.close();
-			this.rs = this.conn.getMetaData().getProcedureColumns(
-					this.conn.getCatalog(), null, "testBug26959", "%");
-
-			String[] parameterNames = new String[] { "_ACTION",
-					"/*dumb-identifier-1*/", "#dumb-identifier-2",
-					"--dumb-identifier-3", "_CLIENT_ID", "_LOGIN_ID", "_WHERE",
-					"_SORT", "_SQL", "_SONG_ID", "_NOTES", "_RESULT" };
-
-			int[] parameterTypes = new int[] { Types.VARCHAR, Types.INTEGER,
-					Types.INTEGER, Types.INTEGER, Types.INTEGER, Types.INTEGER,
-					Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.INTEGER,
-					Types.VARCHAR, Types.VARCHAR };
-
-			int[] direction = new int[] { DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnOut,
-					DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnOut };
-
-			int[] precision = new int[] { 20, 10, 10, 10, 10, 10, 2000, 2000,
-					8000, 10, 2000, 10 };
-
-			int index = 0;
-
-			while (this.rs.next()) {
-				assertEquals(parameterNames[index], this.rs
-						.getString("COLUMN_NAME"));
-				assertEquals(parameterTypes[index], this.rs.getInt("DATA_TYPE"));
-				assertEquals(precision[index], this.rs.getInt("PRECISION"));
-				assertEquals(direction[index], this.rs.getInt("COLUMN_TYPE"));
-				index++;
-			}
-
-			this.rs.close();
-
-			index = 0;
-			parameterNames = new String[] { "/*id*/", "result2" };
-			parameterTypes = new int[] { Types.VARCHAR, Types.DECIMAL };
-			precision = new int[] { 20, 10 };
-			direction = new int[] { DatabaseMetaData.procedureColumnIn,
-					DatabaseMetaData.procedureColumnOut };
-			int[] scale = new int[] { 0, 2 };
-
-			this.conn.prepareCall("{call testBug26959_1(?, ?)}").close();
-
-			this.rs = this.conn.getMetaData().getProcedureColumns(
-					this.conn.getCatalog(), null, "testBug26959_1", "%");
-
-			while (this.rs.next()) {
-				assertEquals(parameterNames[index], this.rs
-						.getString("COLUMN_NAME"));
-				assertEquals(parameterTypes[index], this.rs.getInt("DATA_TYPE"));
-				assertEquals(precision[index], this.rs.getInt("PRECISION"));
-				assertEquals(scale[index], this.rs.getInt("SCALE"));
-				assertEquals(direction[index], this.rs.getInt("COLUMN_TYPE"));
-
-				index++;
-			}
-		} finally {
-			closeMemberJDBCResources();
-		}
-	}
-
-	/**
-	 * Tests fix for BUG#27400 - CALL [comment] some_proc() doesn't work
-	 */
-	public void testBug27400() throws Exception {
-		if (!serverSupportsStoredProcedures()) {
-			return; // SPs not supported
-		}
-
-		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.setInt(1, 1);
-			cStmt.setString(2, "bleh");
-			cStmt.execute();
-		} finally {
-			if (cStmt != null) {
-				cStmt.close();
-			}
-		}
-	}
-	
-	/**
-	 * 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.
-	 * 
-	 * @throws Exception
-	 */
-	public void testBug28689() throws Exception {
-		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')");
-
-		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.setInt(1, 1);
-			cStmt.addBatch();
-			cStmt.executeBatch();
-			
-			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().
-	 * 
-	 * @throws Exception
-	 */
-	public void testBug31823() throws Exception {
-		if (!versionMeetsMinimum(5, 0)) {
-			return; // no stored functions
-		}
-
-		createTable("testBug31823",
-				"(value_1 BIGINT PRIMARY KEY,value_2 VARCHAR(20))");
-
-		createFunction(
-				"f_testBug31823",
-				"(value_1_v BIGINT,value_2_v VARCHAR(20)) RETURNS BIGINT "
-						+ "DETERMINISTIC MODIFIES SQL DATA BEGIN INSERT INTO testBug31823 VALUES (value_1_v,value_2_v); "
-						+ "RETURN value_1_v; END;");
-
-		// Prepare the function call
-		CallableStatement callable = null;
-
-		try {
-			callable = this.conn.prepareCall("{? = call f_testBug31823(?,?)}");
-
-			callable.registerOutParameter(1, Types.BIGINT);
-
-			// Add row with non-null value
-			callable.setLong(2, 1);
-			callable.setString(3, "Non-null value");
-			callable.executeUpdate();
-			assertEquals(1, callable.getLong(1));
-
-			// Add row with null value
-			callable.setLong(2, 2);
-			callable.setNull(3, Types.VARCHAR);
-			callable.executeUpdate();
-			assertEquals(2, callable.getLong(1));
-
-			Method[] setters = CallableStatement.class.getMethods();
-
-			for (int i = 0; i < setters.length; i++) {
-				if (setters[i].getName().startsWith("set")) {
-					Class[] args = setters[i].getParameterTypes();
-
-					if (args.length == 2 && args[0].equals(Integer.TYPE)) {
-						if (!args[1].isPrimitive()) {
-							try {
-								setters[i].invoke(callable, new Object[] {
-										new Integer(2), null });
-							} catch (InvocationTargetException ive) {
-								if (!(ive.getCause() instanceof com.mysql.jdbc.NotImplemented)) {
-									throw ive;
-								}
-							}
-						} else {
-							if (args[1].getName().equals("boolean")) {
-								try {
-									setters[i].invoke(callable, new Object[] {
-											new Integer(2), Boolean.FALSE });
-								} catch (InvocationTargetException ive) {
-									if (!(ive.getCause() instanceof com.mysql.jdbc.NotImplemented)) {
-										throw ive;
-									}
-								}
-							}
-
-							if (args[1].getName().equals("byte")) {
-
-								try {
-									setters[i].invoke(callable,
-											new Object[] { new Integer(2),
-													new Byte((byte) 0) });
-								} catch (InvocationTargetException ive) {
-									if (!(ive.getCause() instanceof com.mysql.jdbc.NotImplemented)) {
-										throw ive;
-									}
-								}
-
-							}
-
-							if (args[1].getName().equals("double")) {
-
-								try {
-									setters[i].invoke(callable, new Object[] {
-											new Integer(2), new Double(0) });
-								} catch (InvocationTargetException ive) {
-									if (!(ive.getCause() instanceof com.mysql.jdbc.NotImplemented)) {
-										throw ive;
-									}
-								}
-
-							}
-
-							if (args[1].getName().equals("float")) {
-
-								try {
-									setters[i].invoke(callable, new Object[] {
-											new Integer(2), new Float(0) });
-								} catch (InvocationTargetException ive) {
-									if (!(ive.getCause() instanceof com.mysql.jdbc.NotImplemented)) {
-										throw ive;
-									}
-								}
-
-							}
-
-							if (args[1].getName().equals("int")) {
-
-								try {
-									setters[i].invoke(callable, new Object[] {
-											new Integer(2), new Integer(0) });
-								} catch (InvocationTargetException ive) {
-									if (!(ive.getCause() instanceof com.mysql.jdbc.NotImplemented)) {
-										throw ive;
-									}
-								}
-
-							}
-
-							if (args[1].getName().equals("long")) {
-								try {
-									setters[i].invoke(callable, new Object[] {
-											new Integer(2), new Long(0) });
-								} catch (InvocationTargetException ive) {
-									if (!(ive.getCause() instanceof com.mysql.jdbc.NotImplemented)) {
-										throw ive;
-									}
-								}
-							}
-
-							if (args[1].getName().equals("short")) {
-								try {
-									setters[i].invoke(callable, new Object[] {
-											new Integer(2),
-											new Short((short) 0) });
-								} catch (InvocationTargetException ive) {
-									if (!(ive.getCause() instanceof com.mysql.jdbc.NotImplemented)) {
-										throw ive;
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-		} finally {
-			if (callable != null) {
-				callable.close();
-			}
-		}
-	}
-}>>>>>>> .merge-right.r6658
+}
\ No newline at end of file

Thread
Connector/J commit: r6691 - trunk/src/testsuite/regressionmmatthews4 Dec