BUG #4027: backslash escaping not disabled in plpgsql

Поиск
Список
Период
Сортировка
От Jonathan Guthrie
Тема BUG #4027: backslash escaping not disabled in plpgsql
Дата
Msg-id 200803112126.m2BLQuf0060841@wwwmaster.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #4027: backslash escaping not disabled in plpgsql  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
The following bug has been logged online:

Bug reference:      4027
Logged by:          Jonathan Guthrie
Email address:      jguthrie@brokersys.com
PostgreSQL version: 8.3.0
Operating system:   Debian Gnu/Linux "unstable" 2.6.24
Description:        backslash escaping not disabled in plpgsql
Details:

I have set the standard_conforming_strings to "on" in my settings, and have
verified it by executing a

select '\';

which works fine and produces the expected:
  ?column?
----------
 \
(1 row)

However, when I attempt to define this function:

create function foo (out r refcursor) as $bar$
begin
 open r for
   select * from user_data
   where name_first like name escape '\';
end; $bar$ language plpgsql;

it complains about an unterminated string. ("ERROR:  unterminated string")
However, if I double the backslashes, it compiles just fine, and does not
emit a warning even though escape_string_warning is also set to 'on'.  As
expected, the system does emit a warning when I double the backslashes and
when standard_conforming_strings is set to 'off'.  I also have
backslash_quote set to 'off', but it doesn't seem to change anything in this
case.

I believe that this is incorrect behavior and that the backslash should be
just a character in that string when standard_conforming_strings is set to
'on'.

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #4026: Displaying Wrong dates
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #4027: backslash escaping not disabled in plpgsql