Bug #3540 getProcedureColumns doesn't work with wildcards for procedure name
Submitted: 22 Apr 2004 13:28 Modified: 27 Apr 2004 12:20
Reporter: Karl Niemeier
Status: Closed
Category:Connector/J Severity:S3 (Non-critical)
Version:3.1.1-alpha OS:Microsoft Windows (Windows XP Pro)
Assigned to: Mark Matthews Target Version:

[22 Apr 2004 13:28] Karl Niemeier
Description:
MySql Server: 5.0.0-alpha-nt
Connector/J: mysql-connector-java-3.1.1-alpha ( $Date: 2004/02/06 17:15:32 $, $Revision:
1.27.4.29 $ )

The procedureNamePattern parameter of getProcedureColumns produces a SQLException if the
pattern contains a wildcard.

How to repeat:
First, run the following SQL script:
delimiter //
drop procedure if exists xt//
create procedure xt(out x int)
begin
set x=42;
end
//

Now run the following Java:
      Class.forName("com.mysql.jdbc.Driver");
      conn = DriverManager.getConnection("your connection stuff here");
      DatabaseMetaData meta = conn.getMetaData();
      System.out.println("Using xt to specify procedure");
      ResultSet mdrs = meta.getProcedureColumns(null, null, "xt", "%");
      while(mdrs.next()){
        String procName = mdrs.getString(3);
        System.out.println("Procedure: "+ procName);
        String parmName = mdrs.getString(4);
        System.out.println("PARAMETER:" + parmName);
        System.out.println("------------------------------------------");
      }
      System.out.println("Using x% to specify procedure");
      mdrs = meta.getProcedureColumns(null, null, "x%", "%");
      while(mdrs.next()){
        String procName = mdrs.getString(3);
        System.out.println("Procedure: "+ procName);
        String parmName = mdrs.getString(4);
        System.out.println("PARAMETER:" + parmName);
        System.out.println("------------------------------------------");
      }    } catch (SQLException e) {;}

Observed: The first call to getProcedureColumns that specifies "xt" works fine. The
second call to getProcedureColumns that specifies "x%" throws a SQLException: Syntax
error or access violation message from server: "You have an error in your SQL syntax. 
Check the manual that corresponds to your MySQL server version for the right syntax to
use near 'PROCEDURES LIKE 'x%'' at line 1"
[24 Apr 2004 10:54] Mark Matthews
Please test with the nightlies of Connector/J 3.1.x, as this code has been modified and
fixed, and the issue doesn't seem to be repeatable with the latest version. See
http://downloads.mysql.com/snapshots.php
[26 Apr 2004 17:27] Karl Niemeier
I still see the problem using mysql-connector-java-3.1-nightly-20040426 ( $Date:
2004/02/21 17:43:42 $, $Revision: 1.27.4.31 $ ).
[27 Apr 2004 12:20] Mark Matthews
This is now fixed in the source repository, and will be included with Connector/J
3.1.2...See http://downloads.mysql.com/snapshots.php to test the nightly snapshot with
these fixes applied after 00:00 GMT today.