CallableStatement.getParameterMetaData() throws exception for valid {call ...} statement

From: Thomas Kellerer <spam_eater(at)gmx(dot)net>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: CallableStatement.getParameterMetaData() throws exception for valid {call ...} statement
Date: 2015-05-30 08:21:52
Message-ID: mkbrv5$vfc$1@ger.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hello,

I just noticed the following:

Using this sample function from the manual:

CREATE FUNCTION sum_n_product(x int, y int, OUT sum int, OUT prod int) AS $$
BEGIN
sum := x + y;
prod := x * y;
END;
$$ LANGUAGE plpgsql;

When calling this through JDBC, the following works without problems:

cstmt = connection.prepareCall("{call sum_n_product(?,?,?,?)}");
cstmt.registerOutParameter(3, Types.INTEGER);
cstmt.registerOutParameter(4, Types.INTEGER);
cstmt.setInt(1, 2);
cstmt.setInt(2, 5);
cstmt.execute();
int x1 = cstmt.getInt(3);
int x2 = cstmt.getInt(4);

System.out.println("x1: " + x1);
System.out.println("x2: " + x2);

However when calling

ParameterMetaData meta = cstmt.getParameterMetaData();

after prepareCall() the following exception is thrown:

org.postgresql.util.PSQLException: ERROR: function sum_n_product(unknown, unknown, unknown, unknown) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Position: 15

Casting everything to integer ( "{call sum_n_product(?::int,?::int,?::int,?::int)}" ) produces the same error (except that the parameter list shows integer in the exception message).

This looks like a bug to me. Why should getParameterMetaData() throw an exception if the call is valid and working?

Driver version is 9.4-1200
Postgres version is 9.4.2
Java version is 1.7.0_55

Regards
Thomas

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message dmp 2015-05-30 19:50:15 Re: CallableStatement.getParameterMetaData() throws exception for valid {call ...} statement
Previous Message dmp 2015-05-26 14:39:31 Re: Reading schema information