git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: 8bb0c97) | patch
Avoid premature de-doubling of quote marks in ECPG strings.
2020年10月22日 21:34:32 +0000 (17:34 -0400)
2020年10月22日 22:29:46 +0000 (18:29 -0400)
commit 3dfb1942d9b8748b93094a430289e2f7f3b3ae0d
Avoid premature de-doubling of quote marks in ECPG strings.

If you write the literal 'abc''def' in an EXEC SQL command, that will
come out the other end as 'abc'def', triggering a syntax error in the
backend. Likewise, "abc""def" is reduced to "abc"def" which is wrong
syntax for a quoted identifier.

The cause is that the lexer thinks it should emit just one quote
mark, whereas what it really should do is keep the string as-is.

Add some docs and test cases, too.

Although this seems clearly a bug, I fear users wouldn't appreciate
changing it in minor releases. Some may well be working around it
by applying an extra doubling of affected quotes, as for example
sql/dyntest.pgc has been doing.

Per investigation of a report from 1250kv, although this isn't
exactly what he/she was on about.

Discussion: https://postgr.es/m/673825.1603223178@sss.pgh.pa.us
doc/src/sgml/ecpg.sgml diff | blob | blame | history
src/interfaces/ecpg/preproc/pgc.l diff | blob | blame | history
src/interfaces/ecpg/test/expected/preproc-strings.c diff | blob | blame | history
src/interfaces/ecpg/test/expected/preproc-strings.stderr diff | blob | blame | history
src/interfaces/ecpg/test/expected/preproc-strings.stdout diff | blob | blame | history
src/interfaces/ecpg/test/preproc/strings.pgc diff | blob | blame | history
src/interfaces/ecpg/test/sql/dyntest.pgc diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /