I have standard_conforming_strings set on and backslash_quote set off
for one of my dev servers. According to the pg docs (http://
www.postgresql.org/docs/8.2/static/runtime-config-compatible.html),
eventually these options will default to on so I want to get a head
start on testing. I'm run into something that I'm not sure how to
handle.
when I do $dbh->quote("...\'...") "...''..." is returned. I would
expect "...\''..." to be returned since \' is not a recognized
escape string with backslash_quote on. DBD::Pg thinks \' should be
'' which is not true in this case. Also, if
standard_conforming_strings is turned on, \ never needs to be escaped
since it is no longer an escape character unless it's used in sql
escape strings (E'...'). There also seems to be to no way in DBD::Pg
to quote an (E'...') string and quote an ('...') string. For example
if i actually want the escape string (E'\b') there appears no way to
do so, because passing '\b' to quote() returns '\\b' which is will
not work. Furthermore if I actually want the text \b in
standard_conforming_strings quote() will return '\\b' which is also
wrong since \ isn't an escape character in
standard_conforming_strings and doesn't need to be escaped.
What are the future plans with DBD::Pg to support quoting standard
conforming strings and standards conforming escape strings?
--brian
- quote(), standard_conforming_strings backslash_quote Brian Hirt
-