Thread: CREATE FUNCTION with JDBC

CREATE FUNCTION with JDBC

From
Thomas Kellerer
Date:
Hello,

I was using a Java based front end to PG and tried to create a function
that I could use for a trigger.

CREATE OR REPLACE FUNCTION trg_func_ucase() RETURNS trigger AS
$trg$
     BEGIN
          NEW.name = upper(NEW.name);
     END;
$trg$
language 'plpgsql';

I kept getting an error message
ERROR: unterminated dollar-quoted string at or near "$trg$

As the statement works with psql, I thought this might be a problem of my
JDBC frontend, so I create a simple test program which sends the above
string using execute() (tried executeUpdate() as well) to the database, and
I'm getting the same error.

When I use single quotes around the function body everything works fine
through plain JDBC. This means a use disadvantage for any Java based
frontend (as I have to deal with the old clumsy quoting again), and I'm
wondering if this is a bug in the driver, or simply not supposed to work.

In any case: is there any chance of getting this fixed?

I'm using PG 8.0.2 on Win2000 and the JDBC driver is 8.0-311

Cheers
Thomas



Re: CREATE FUNCTION with JDBC

From
Kris Jurka
Date:

On Mon, 23 May 2005, Thomas Kellerer wrote:

> [dollar quoting doesn't work with the JDBC driver]

This is a known issue.

> In any case: is there any chance of getting this fixed?
>

Sure, we're not opposed to fixing it, just haven't found the time.  Of
course, since this was brought to our attention eight months ago, I
wouldn't hold my breath.

http://archives.postgresql.org/pgsql-jdbc/2004-09/msg00062.php

Kris Jurka

Re: CREATE FUNCTION with JDBC

From
Thomas Kellerer
Date:
Kris Jurka wrote on 24.05.2005 00:05:
>>[dollar quoting doesn't work with the JDBC driver]
>
> This is a known issue.
>
>>In any case: is there any chance of getting this fixed?
>>
>
> Sure, we're not opposed to fixing it, just haven't found the time.  Of
> course, since this was brought to our attention eight months ago, I
> wouldn't hold my breath.

Thanks for the quick response.
It's not a big deal for me right now, so I might be able to wait :)

Cheers
Thomas