Re: Prepared statement parameter and timestamp - Mailing list pgsql-jdbc

From Kris Jurka
Subject Re: Prepared statement parameter and timestamp
Date
Msg-id Pine.BSO.4.64.0704091208320.13571@leary.csoft.net
Whole thread Raw
In response to Prepared statement parameter and timestamp  ("ste.buffaishere@tin.it" <ste.buffaishere@tin.it>)
Responses Re: Prepared statement parameter and timestamp  ("Xavier Poinsard" <xpoinsard@free.fr>)
List pgsql-jdbc

On Tue, 3 Apr 2007, ste.buffaishere@tin.it wrote:

> PreparedStatement ps = conn.prepareStatement(
> "SELECT date_trunc('week', {ts ?})");
> ps.setTimestamp(1, new java.sql.
> Timestamp(
>                 new java.util.Date().getTime()));
>
> fails miserably with
> org.postgresql.util.PSQLException: ERROR: syntax
> error at or near "$1"


The JDBC driver translates the escape sequence to:

SELECT date_trunc('week', timestamp ?)

but the server can't handle the prefix timestamp cast for anything other
than plain literals, so it doesn't work for the parameter.

I suppose the driver should instead try to rewrite this as:

SELECT date_trunc('week', ?::timestamp)

I'm not sure how much work that would be to do.

Kris Jurka


pgsql-jdbc by date:

Previous
From: Kris Jurka
Date:
Subject: Re: Problem with Running Query
Next
From: Bellur Ashwin
Date:
Subject: Exception in running query