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 по дате отправления: