Re: BUG #16557: getProcedureColumns() function returns columns, when there is no existing Stored Procedure in the DB - Mailing list pgsql-bugs

From Dave Cramer
Subject Re: BUG #16557: getProcedureColumns() function returns columns, when there is no existing Stored Procedure in the DB
Date
Msg-id CADK3HHLR9QeR+Ce25GO_1Z9a856dxJzEPGjhHuPxVcOZDPx+uw@mail.gmail.com
Whole thread Raw
In response to BUG #16557: getProcedureColumns() function returns columns, when there is no existing Stored Procedure in the DB  (PG Bug reporting form <noreply@postgresql.org>)
List pgsql-bugs
This has been fixed in
Please upgrade the driver 
Dave Cramer
www.postgres.rocks


On Mon, 27 Jul 2020 at 13:47, PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      16557
Logged by:          Adarshdeep Cheema
Email address:      adarshdeep.cheema@ibm.com
PostgreSQL version: 12.2
Operating system:   Windows
Description:       

Create any user defined function using Postgres 12.3 Server, we are using
postgresql-42.2.11 JDBC driver

DDLs:
CREATE FUNCTION findec(pdec numeric) RETURNS numeric
    LANGUAGE plpgsql
    AS $$
declare r decimal(7,2);
begin
        r = PDEC;
        return r;
end;
$$;


a) When we use the following Java code, then we get nothing as we do no have
any Stored Procedure defined, which is expected
  resultSet= metadata.getProcedures(null , "public", null); ,
  while (resultSet.next()){

            System.out.print(resultSet.getString(1)+"    ");
            System.out.print(resultSet.getString(2)+"    ");
            System.out.print(resultSet.getString(3)+"    ");
            System.out.print(resultSet.getString(4)+"    ");
            System.out.print(resultSet.getString(5)+"    ");
            System.out.println(resultSet.getString(6)+"    ");
        }

b) Now change the JAVA code to the following and you will get two columns in
the resultSet, which is a bug as there is no StoredProcedure Defined in the
database

 resultSet= metadata.getProcedureColumns(null , "public", "findec", null);
,
  while (resultSet.next()){

            System.out.print(resultSet.getString(1)+"    ");
            System.out.print(resultSet.getString(2)+"    ");
            System.out.print(resultSet.getString(3)+"    ");
            System.out.print(resultSet.getString(4)+"    ");
            System.out.print(resultSet.getString(5)+"    ");
            System.out.println(resultSet.getString(6)+"    ");
        }


OUTPUT:
null    public    findec    returnValue    5    2   
null    public    findec    pdec    1    2

pgsql-bugs by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: BUG #16486: Prompted password is ignored when password specified in connection string
Next
From: Peter Geoghegan
Date:
Subject: Re: BUG #15285: Query used index over field with ICU collation in some cases wrongly return 0 rows