From: Date: August 30 2005 8:00pm Subject: Connector/J commit: r4159 - branches/branch_3_1/connector-j/src/com/mysql/jdbc List-Archive: http://lists.mysql.com/internals/29043 Message-Id: <200508301800.j7UI0fXU023117@bk-internal.mysql.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Modified: branches/branch_3_1/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java Log: check for lower-case-table-names on Windows when generating catalog name for getCallStmtParameterTypes(). Modified: branches/branch_3_1/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java =================================================================== --- branches/branch_3_1/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java 2005-08-30 00:05:44 UTC (rev 4158) +++ branches/branch_3_1/connector-j/src/com/mysql/jdbc/DatabaseMetaData.java 2005-08-30 18:00:41 UTC (rev 4159) @@ -1124,6 +1124,7 @@ java.sql.Statement paramRetrievalStmt = null; java.sql.ResultSet paramRetrievalRs = null; + if (parameterNamePattern == null) { if (this.conn.getNullNamePatternMatchesAll()) { parameterNamePattern = "%"; @@ -1153,14 +1154,33 @@ String parameterDef = null; PreparedStatement paramRetrievalPreparedStatement = null; - + try { - paramRetrievalStmt = this.conn.createStatement(); - - if (paramRetrievalStmt.getMaxRows() != 0) { - paramRetrievalStmt.setMaxRows(0); + paramRetrievalStmt = this.conn.getMetadataSafeStatement(); + + if (this.conn.lowerCaseTableNames()) { + // Workaround for bug in server wrt. to + // SHOW CREATE PROCEDURE not respecting + // lower-case table names + + String oldCatalog = this.conn.getCatalog(); + ResultSet rs = null; + + try { + this.conn.setCatalog(catalog); + paramRetrievalStmt.executeQuery("SELECT DATABASE()"); + rs.next(); + + catalog = rs.getString(1); + + } finally { + + this.conn.setCatalog(oldCatalog); + + rs.close(); + } } - + int dotIndex = -1; if (!" ".equals(quoteChar)) {