Hi,
Here is a reworked version of patch for jsonb subscription.
There weren't many changes in functionality:
=# create TEMP TABLE test_jsonb_subscript (
id int,
test_json jsonb
);
=# insert into test_jsonb_subscript values
(1, '{}'),
(2, '{}');
=# update test_jsonb_subscript set test_json['a'] = 42;
=# select * from test_jsonb_subscript;
id | test_json
----+--------------------------
1 | {"a": 42}
2 | {"a": 42}
(2 rows)
=# select test_json['a'] from test_jsonb_subscript;
test_json
------------
{"a": 42}
{"a": 42}
(2 rows)
I've cleaned up the code, created a separate JsonbRef node (and there are a lot of small changes because of that), abandoned an idea of "deep nesting" of assignments (because it doesn't relate to jsonb subscription, is more about the
"jsonb_set" function, and anyway it's not a good idea). It looks fine for me, and I need a little guidance - is it ok to propose this feature for commitfest 2016-03 for a review?