Re: Rethinking plpgsql's assignment implementation

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Rethinking plpgsql's assignment implementation
Дата
Msg-id CAFj8pRC6T3kfv=ewa4DomW7dpqt31daUxAvmafk0Nk6sn=WHZw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Rethinking plpgsql's assignment implementation  (Pavel Stehule <pavel.stehule@gmail.com>)
Ответы Re: Rethinking plpgsql's assignment implementation  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-hackers
Hi

Now, I am testing subscribing on the jsonb feature, and I found one issue, that is not supported by parser.

When the target is scalar, then all is ok. But we can have a plpgsql array of jsonb values.

postgres=# do $$
declare j jsonb[];
begin
  j[1] = '{"b":"Ahoj"}';
  raise notice '%', j;
  raise notice '%', (j[1])['b'];
end
$$;
NOTICE:  {"{\"b\": \"Ahoj\"}"}
NOTICE:  "Ahoj"
DO

Parenthesis work well in expressions, but are not supported on the left side of assignment.

postgres=# do $$
declare j jsonb[];
begin
  (j[1])['b'] = '"Ahoj"';
  raise notice '%', j;
  raise notice '%', j[1]['b'];
end
$$;
ERROR:  syntax error at or near "("
LINE 4:   (j[1])['b'] = '"Ahoj"';
          ^

Regards

Pavel


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

Предыдущее
От: James Hilliard
Дата:
Сообщение: Re: [PATCH v2 1/1] Fix detection of pwritev support for OSX.
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: [HACKERS] [PATCH] Generic type subscripting