Re: [PATCHES] dollar quoting - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [PATCHES] dollar quoting
Date
Msg-id 200402161548.i1GFmBi27589@candle.pha.pa.us
Whole thread Raw
In response to Re: [PATCHES] dollar quoting  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [PATCHES] dollar quoting  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: [PATCHES] dollar quoting  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-hackers
Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
> >> No, it won't.  The problem is that it should, because the backend will
> >> see that as '42' followed by a $foo$ quote start.
>
> > Ok, I see what you are saying. This mismatch would only happen on
> > invalid input, though. I believe that what I did will work on all legal
> > input.
>
> I'm unconvinced.  Even if there are not any current syntaxes in which a
> numeric literal can be adjacent to a string literal (I'm not totally
> sure about that), what of the future?  We should solve the problem
> rather than assuming it won't bite us.
>
> > I think that this might be cured by having psql recognise a legal
> > identifier or keyword and eating it as a word, rather than treating it
> > as just another set of bytes in the stream.
>
> Hm, might work ... will think about it ...

I am a little concerned about adding the overhead of lex to psql.  Right
now, some folks have reported that lex/yacc take a considerable amount
of processing time in the backend as part of a query, and adding that to
psql just to do $$ seems questionable.  Of course, we can alway test and
see what the overhead shows.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [pgsql-hackers-win32] Sync vs. fsync during checkpoint
Next
From: Robert Treat
Date:
Subject: Re: No Timeout in SELECT..FOR UPDATE