Re: BUG #6155: literal definition of arrays with double qoutes leads to error

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #6155: literal definition of arrays with double qoutes leads to error
Дата
Msg-id 6103.1312866140@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #6155: literal definition of arrays with double qoutes leads to error  ("listar" <listar@mail.ru>)
Ответы Re: BUG #6155: literal definition of arrays with double qoutes leads to error  ("ai" <listar@mail.ru>)
Список pgsql-bugs
"listar" <listar@mail.ru> writes:
> SELECT ('{string "with" double quotes}'::text[])[1] as value;
> gives:

> ERROR:  malformed array literal: "{string "with" double quotes}"
> LINE 1: SELECT ('{string "with" double quotes}'::text[])[1] as value...
>                 ^

This is not a bug; that value does not follow the documented rules for
array literals.  Per the manual:

As shown previously, when writing an array value you can use double
quotes around any individual array element. You must do so if the
element value would otherwise confuse the array-value parser. For
example, elements containing curly braces, commas (or the data type's
delimiter character), double quotes, backslashes, or leading or trailing
whitespace must be double-quoted. Empty strings and strings matching the
word NULL must be quoted, too. To put a double quote or backslash in a
quoted array element value, use escape string syntax and precede it with
a backslash. Alternatively, you can avoid quotes and use
backslash-escaping to protect all data characters that would otherwise
be taken as array syntax.


An example of correct format is

regression=# select E'{"string \\"with\\" double quotes"}'::text[];
               text
-----------------------------------
 {"string \"with\" double quotes"}
(1 row)

Frequently it's easier to use an array[] constructor:

regression=# select array['string "with" double quotes'::text];
               array
-----------------------------------
 {"string \"with\" double quotes"}
(1 row)

            regards, tom lane

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #6154: wrong result with nested left-joins
Следующее
От: "ai"
Дата:
Сообщение: Re: BUG #6154: wrong result with nested left-joins