Re: pgsql: Additional functions and operators for jsonb

Поиск
Список
Период
Сортировка
От Dmitry Dolgov
Тема Re: pgsql: Additional functions and operators for jsonb
Дата
Msg-id CA+q6zcVDBVrXb4BjnxpqJnwHMt6mVnDKFZvY6LhcCZ8skqtHEw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: pgsql: Additional functions and operators for jsonb  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-committers
Yes, looks like everything is ok - i just would like to add few tests for this issues.

On 13 May 2015 at 21:34, Andrew Dunstan <andrew@dunslane.net> wrote:

On 05/12/2015 04:11 PM, Pavel Stehule wrote:
Hi

I did some tests, and I am not sure if this is not bug:

postgres=# select '{"x":20}'::jsonb - 'x'::text;
ERROR:  unknown type of jsonb container --->>> it should be empty jsonb, not error
Time: 0.971 ms
postgres=# select '{"x":20, "y":30}'::jsonb - 'x'::text;
┌───────────┐
│ ?column?  │
╞═══════════╡
│ {"y": 30} │
└───────────┘
(1 row)






Some of this logic needs tightening. The attached patch should do that. Among other things, it errors out if we attempt to delete or replace on a scalar, just returns the input argument if there are no changes instead of cloning it, checks via an Assert that the constructed JsonbValue is not null, and otherwise returns it unconditionally. The result is actually simpler code, I think. Before I apply it I'd like to have comments from Dmitry and Petr, just to make sure I haven't inadvertently slipped my moorings.

cheers

andrew




Вложения

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

Предыдущее
От: Petr Jelinek
Дата:
Сообщение: Re: pgsql: Additional functions and operators for jsonb
Следующее
От: Andrew Dunstan
Дата:
Сообщение: pgsql: Fix jsonb replace and delete on scalars and empty structures