Peter Eisentraut <peter_e@gmx.net> writes:
> Florian Weimer writes:
>
> > The first version escaped ' with ''. I changed it when I noticed that
> > if \' is used instead, the same function can be used for strings
> > ('...') and identifiers ("...").
>
> Last time I checked (15 seconds ago), you could not escape " with \ in
> PostgreSQL. The identifer parsing rules are a bit different from strings.
Yes, we misread the lexer description. I'm sorry about that.
In addition, there seems to be a bug in the treatment of "" escapes in
identifiers. 'SELECT """";' yields the error message 'Attribute '""'
not found ' (not '"'!) or even 'Attribute '""\' not found', depending
on the queries executed before.
For identifiers, comparing the characters to a white list is probably
a more reasonable approach.
--
Florian Weimer Florian.Weimer@RUS.Uni-Stuttgart.DE
University of Stuttgart http://cert.uni-stuttgart.de/
RUS-CERT +49-711-685-5973/fax +49-711-685-5898