Обсуждение: psql eating backslashes
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 #
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
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