Thread: psql eating backslashes

psql eating backslashes

From
JanWieck@t-online.de (Jan Wieck)
Date:
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 #




Re: psql eating backslashes

From
Peter Eisentraut
Date:
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



Re: psql eating backslashes

From
Tom Lane
Date:
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