Hi Alex! Glad you made so much effort to develop this patch set! I think this is an important part of Json functionality.
I've looked into you patch and noticed change in behavior in new test results: postgres@postgres=# create table t(x int, y jsonb); insert into t select 1, '{"a": 1, "b": 42}'::jsonb; insert into t select 1, '{"a": 2, "b": {"c": 42}}'::jsonb; insert into t select 1, '{"a": 3, "b": {"c": "42"}, "d":[11, 12]}'::jsonb; CREATE TABLE Time: 6.373 ms INSERT 0 1 Time: 3.299 ms INSERT 0 1 Time: 2.532 ms INSERT 0 1 Time: 2.453 ms Original master: postgres@postgres=# select (t.y).b.c.d.e from t; ERROR: column notation .b applied to type jsonb, which is not a composite type LINE 1: select (t.y).b.c.d.e from t; ^ Time: 0.553 ms Patched (with v11): postgres@postgres=# select (t.y).b.c.d.e from t; e --- (3 rows) Is this correct? -- Regards, Nikita Malakhov Postgres Professional The Russian Postgres Company https://postgrespro.ru/