psql eating backslashes

Started by Nonameover 25 years ago3 messages
#1Noname
JanWieck@t-online.de

Hi,

seems to me that psql thinks to know a little too much about
quoting. I'm not able to qoute a backslash at the end of a
line:

xxx=# select 'a\\b\\
xxx'# c';
?column?
----------
a\b
c
(1 row)

There is a newline following directly after b\\, so I
expected a "a\b\<NL>c" response - what the above obviously
isn't.

Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck@Yahoo.com #

#2Peter Eisentraut
peter_e@gmx.net
In reply to: Noname (#1)
Re: psql eating backslashes

Jan Wieck writes:

seems to me that psql thinks to know a little too much about
quoting. I'm not able to qoute a backslash at the end of a
line:

xxx=# select 'a\\b\\
xxx'# c';
?column?
----------
a\b
c
(1 row)

I committed a fix that should give you better results.

peter=# select 'abc\\
peter'# def';
?column?
----------
abc\
def
(1 row)

But what should

peter=# select 'abc\
peter'# def';

do? This doesn't seem right:

?column?
----------
abc
def
(1 row)

Should the newline be stripped?

--
Peter Eisentraut Sernanders v�g 10:115
peter_e@gmx.net 75262 Uppsala
http://yi.org/peter-e/ Sweden

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#2)
Re: psql eating backslashes

Peter Eisentraut <peter_e@gmx.net> writes:

But what should

peter=# select 'abc\
peter'# def';

do? This doesn't seem right:

?column?
----------
abc
def
(1 row)

Looks fine to me.

Should the newline be stripped?

I would think not. That would mean that backslash-newline gives you
something *other* than a literal newline, which is an inconsistency
we don't need since we don't treat newline as special.

Also, it would be changing the old (pre-7.0) behavior, which would
doubtless break someone's code somewhere. In the absence of a
compelling reason to change the behavior, I think we have to leave it
alone.

regards, tom lane