Escape handling in strings
[ BCC to general. ]
I have received very few replies to my suggestion that we implement E''
for escaped strings, so eventually, after a few major releases, we can
have '' treat backslashes literally like the SQL standard requires.
I assume this is because most people say, "yea, it is going to be a pain,
and yea, we should probably do it".
A summary of the plan is at:
http://candle.pha.pa.us/cgi-bin/pgescape
Therefore, I will soon apply the escape patch at:
ftp://candle.pha.pa.us/pub/postgresql/mypatches/escape
I will also backpatch the E'' syntax and read-only GUC variables to
earlier releases.
--
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
Bruce Momjian wrote:
I have received very few replies to my suggestion that we implement E''
for escaped strings, so eventually, after a few major releases, we can
have '' treat backslashes literally like the SQL standard requires.
Just checking: with this plan, a client needs to know what server
version is in use to correctly escape strings, correct? That is, there
is no escape mechanism that works correctly for both "old" and "new"
servers?
-O
Oliver Jowett <oliver@opencloud.com> writes:
Bruce Momjian wrote:
I have received very few replies to my suggestion that we implement E''
for escaped strings, so eventually, after a few major releases, we can
have '' treat backslashes literally like the SQL standard requires.
Just checking: with this plan, a client needs to know what server
version is in use to correctly escape strings, correct? That is, there
is no escape mechanism that works correctly for both "old" and "new"
servers?
When the change happens, yes, it will be non compatible. I don't
recommend thinking of it as a "server version" check though --- we
will put in a read-only GUC variable (like the one for integer
datetimes) and you can check it through the parameter reporting
mechanism.
regards, tom lane
What I am really hoping for is that PQexecParams() [in later versions
of libpq] can figure it out for itself so client code doesn't need
fixing. That is the plan, right?
On Jun 20, 2005, at 11:57 PM, Oliver Jowett wrote:
Bruce Momjian wrote:
I have received very few replies to my suggestion that we
implement E''
for escaped strings, so eventually, after a few major releases, we
can
have '' treat backslashes literally like the SQL standard requires.Just checking: with this plan, a client needs to know what server
version is in use to correctly escape strings, correct? That is, there
is no escape mechanism that works correctly for both "old" and "new"
servers?
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
AgentM
agentm@themactionfaction.com
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
FYI
On 06/20/2005 11:12:20 PM, Bruce Momjian wrote:
[ BCC to general. ]
I have received very few replies to my suggestion that we implement
E''
for escaped strings, so eventually, after a few major releases, we can
have '' treat backslashes literally like the SQL standard requires.I assume this is because most people say, "yea, it is going to be a
pain,
and yea, we should probably do it".A summary of the plan is at:
To my mind your recommendation for 8.3
8.3 - Have non-'E' strings treat backslashes literally.
would require a major version change, to 9.0 instead of
8.3, as it breaks forward and backward compatability.
But that's just the way I see version numbering working,
not necessarly how postgresql does it.
Karl <kop@meme.com>
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein
AgentM <agentm@themactionfaction.com> writes:
What I am really hoping for is that PQexecParams() [in later versions
of libpq] can figure it out for itself so client code doesn't need
fixing. That is the plan, right?
Out-of-line parameters are not an issue at all --- only string literals
embedded in the SQL query.
regards, tom lane
Tom Lane wrote:
Oliver Jowett <oliver@opencloud.com> writes:
Bruce Momjian wrote:
I have received very few replies to my suggestion that we implement E''
for escaped strings, so eventually, after a few major releases, we can
have '' treat backslashes literally like the SQL standard requires.Just checking: with this plan, a client needs to know what server
version is in use to correctly escape strings, correct? That is, there
is no escape mechanism that works correctly for both "old" and "new"
servers?When the change happens, yes, it will be non compatible. I don't
recommend thinking of it as a "server version" check though --- we
will put in a read-only GUC variable (like the one for integer
datetimes) and you can check it through the parameter reporting
mechanism.
Right, the GUC read-only variables are already in the patch URL I
posted.
--
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