Re: Unable to prepare a statement when the object names contain more than one $ symbol

From: Kris Jurka <books(at)ejurka(dot)com>
To: Michael Paesold <mpaesold(at)gmx(dot)at>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Altaf Malik <mmalik_altaf(at)yahoo(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Unable to prepare a statement when the object names contain more than one $ symbol
Date: 2007-10-16 08:22:25
Message-ID: Pine.BSO.4.64.0710160420230.644@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Tue, 10 Jul 2007, Michael Paesold wrote:

> Tom Lane schrieb:
>> Kris Jurka <books(at)ejurka(dot)com> writes:
>>> On Mon, 9 Jul 2007, Altaf Malik wrote:
>>>> PreparedStatement pstmt = con.prepareStatement("insert into a$b$c values(
>>>> ? , ?)");
>>
>>> This is a bug in dollar quote parsing. It assumes that any potential
>>> dollar quote start will have an end tag.
>>
>> If it thinks that's a dollar quote start, it's wrong already... that's
>> a perfectly valid table name. (Although personally I'd suggest that the
>> OP avoid dollar signs in identifiers, since they're none too portable.)
>
> I guess I missed that case when implementing dollar quoting in the driver. I
> will have a look at it shortly.
>

Did you ever get a chance to look at this? The attached patch fixes the
original complaint by ensuring that the ending tag exists, but as Tom
pointed out that's still not good enough as the second attached test case
demonstrates.

Kris Jurka

Attachment Content-Type Size
ensure-dollarquote-ends.patch text/plain 1.5 KB
DollarTest.java text/plain 1018 bytes

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Tore Halset 2007-10-16 08:29:19 Re: text metadata
Previous Message Heikki Linnakangas 2007-10-16 08:18:15 Re: text metadata