JDBC escaped scalar functions fail when used in function definition - Mailing list pgsql-jdbc

From Adam Rauch
Subject JDBC escaped scalar functions fail when used in function definition
Date
Msg-id 56E1FEEA.1010302@labkey.com
Whole thread Raw
Responses Re: JDBC escaped scalar functions fail when used in function definition  ("David G. Johnston" <david.g.johnston@gmail.com>)
Re: JDBC escaped scalar functions fail when used in function definition  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-jdbc
While testing postgresql-9.4.1208.jar with our system, code is now failing when it attempts to use {fn now()} in the body of a PostgreSQL CREATE FUNCTION statement. This worked fine on 1207 and all previous versions of the driver.

In other words, the code below succeeds on 1207 but fails on 1208 (passing in server, port, database, username, and password as parameters):
import java.sql.*;

public class PGTest
{   public static void main(String[] args) throws SQLException   {       try (Connection conn = DriverManager.getConnection("jdbc:postgresql://" + args[0] + ":" + args[1] + "/" + args[2], args[3], args[4]))       {           try (PreparedStatement stmt = conn.prepareStatement(                   "CREATE FUNCTION public.fn_now() RETURNS VOID AS $$\n" +                           "    BEGIN\n" +                           "        SELECT {fn now()};" +                           "    END;\n" +                           "$$ LANGUAGE plpgsql;" +                           "DROP FUNCTION public.fn_now();")) {               stmt.execute();           }       }   }
}
Bug? Intentional change in behavior? Thanks, Adam

pgsql-jdbc by date:

Previous
From: Craig Ringer
Date:
Subject: Re: Complicated re-distribution of pgjdbc the "open source way"
Next
From: "David G. Johnston"
Date:
Subject: Re: JDBC escaped scalar functions fail when used in function definition