Bug #49578 | conn.getMetaData( ).getProcedures(conn.getCatalog(),null,"%") returns empty | ||
---|---|---|---|
Submitted: | 10 Dec 2009 10:13 | Modified: | 9 Feb 2010 5:57 |
Reporter: | Wenjie Tu | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | Connector / J | Severity: | S2 (Serious) |
Version: | 5.1.7 | OS: | Windows |
Assigned to: | CPU Architecture: | Any |
[10 Dec 2009 10:13]
Wenjie Tu
[21 Dec 2009 9:59]
Tonci Grgin
Hi Wenjie and thanks for your report. Since you're working on windows, please see the value of lower_case_table_names variable as described in http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_lower_case_tabl... and http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html. Inform me of result. Also, please do not file bug against long EOL-ed c/J, use more recent ones.
[28 Dec 2009 6:25]
Wenjie Tu
Our lower_case_table_names variable value is 1. And I tested against mysql-connector-java-5.1.10-bin.jar, same issue is observed.
[18 Jan 2010 9:41]
Tonci Grgin
Wenjie, there are several settings that come to play here so please attach full but compact test case with connection string and note the following: o What is the MySQL server version o What is the value of "nullCatalogMeansCurrent" variable o What is the value of "useInformationSchema" variable o Does you user have access to mysql schema
[18 Jan 2010 10:28]
Tonci Grgin
Ok, I tested with similar setup on my Windows box using latest c/J sources. The problem can not be repeated: public void testBug49578() throws Exception { System.out.println("java.vm.version : " + System.getProperty("java.vm.version")); System.out.println("java.vm.vendor : " + System.getProperty("java.vm.vendor")); System.out.println("java.runtime.version : " + System.getProperty("java.runtime.version")); System.out.println("os.name : " + System.getProperty("os.name")); System.out.println("os.version : " + System.getProperty("os.version ")); System.out.println("sun.management.compiler : " + System.getProperty("sun.management.compiler")); if (versionMeetsMinimum(5, 0, 7)) { Properties props = new Properties(); props.put("useInformationSchema", "false"); //tested both but running with root user who can select from mysql.proc, both work //props.put("nullCatalogMeansCurrent", "true"); Connection conn1 = null; try { conn1 = getConnectionWithProps(props); System.out.println("conn.GetCatalog :" + conn1.getCatalog()); this.rs = conn1.getMetaData().getProcedures(conn1.getCatalog(),null,"%"); this.rs.first(); System.out.println(this.rs.getString(1)); this.rs.close(); this.rs = conn1.getMetaData().getProcedures("jshop",null,"%"); this.rs.first(); System.out.println(this.rs.getString(1)); this.rs.close(); } finally { closeMemberJDBCResources(); } } } jshop is the database that has some SP's in it. Output: Loading JDBC driver 'com.mysql.jdbc.Driver' Done. Done. java.vm.version : 1.5.0_17-b04 java.vm.vendor : Sun Microsystems Inc. java.runtime.version : 1.5.0_17-b04 os.name : Windows Server 2008 os.version : null sun.management.compiler : HotSpot Client Compiler Connected to 5.1.32-community-log conn.GetCatalog :jshop jshop jshop JVM settings and Conn string: -Xmx1024M -XX:+UseParallelGC -Dcom.mysql.jdbc.java6.javac=C:\jvms\jdk1.6.0\bin\javac.exe -Dcom.mysql.jdbc.java6.rtjar=C:\jvms\jdk1.6.0\jre\lib\rt.jar -Dcom.mysql.jdbc.testsuite.url.default=jdbc:mysql://localhost:xx/jshop?user=xx&password=xx&autoReconnect=false&connectTimeout=5000&socketTimeout=30000&useUnicode=true&characterSetResults=utf8&useInformationSchema=true&useServerPrepStmts=true&cacheResultSetMetadata=true&useAffectedRows=false&traceProtocol=false
[19 Jan 2010 3:06]
Wenjie Tu
Tonci, What if change your connect url to jdbc:mysql://localhost:xx/JSHOP ?
[9 Feb 2010 5:57]
Wenjie Tu
I don't how to reopen this bug, so have to create another entry: http://bugs.mysql.com/bug.php?id=51013 to provide more details
[9 Feb 2010 9:52]
Tonci Grgin
Continued in Bug#51013.