Re: pgsql: Additional functions and operators for jsonb

Поиск
Список
Период
Сортировка
От Petr Jelinek
Тема Re: pgsql: Additional functions and operators for jsonb
Дата
Msg-id 55537BC9.1080805@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: pgsql: Additional functions and operators for jsonb  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-committers
On 13/05/15 16:34, Andrew Dunstan 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.
>

I think it's ok like this, except that the "cannot get delete from
scalar" error message should probably be "cannot delete from scalar" in
both places.


--
  Petr Jelinek                  http://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training & Services


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

Предыдущее
От: Robert Haas
Дата:
Сообщение: pgsql: Remove useless assertion.
Следующее
От: Dmitry Dolgov
Дата:
Сообщение: Re: pgsql: Additional functions and operators for jsonb