Re: BUG #2729: Backslash escaping not working as expected

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #2729: Backslash escaping not working as expected
Дата
Msg-id 17770.1162486631@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #2729: Backslash escaping not working as expected  ("Michael van Rooyen" <mvanr@bigfoot.com>)
Список pgsql-bugs
"Michael van Rooyen" <mvanr@bigfoot.com> writes:
> The following query from psql:
> select * from product where name like '%\\%';
> Yields products whose names end with a %. I would have expected it to yeild
> products whose names contained a backslash.

Postgres defaults to assuming \ as the LIKE escape character, that is,
what you typed is equivalent to

select * from product where name like '%\\%' escape '\\';

You can get the behavior you're expecting by not having any escape character:

select * from product where name like '%\\%' escape '';

This is as explained in TFM:
http://www.postgresql.org/docs/8.1/static/functions-matching.html#FUNCTIONS-LIKE
although I notice that SQL92 says that there is no escape character by
default.  We can't change our historical documented behavior on the
point unless we were willing to provide a configuration variable to
adjust it, and I'm not sure it's worth that.

            regards, tom lane

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: documentation
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #2730: strange query performance !