Re: SQL:2023 JSON simplified accessor support
Nikita Malakhov <hukutoc@gmail.com>
From: Nikita Malakhov <hukutoc@gmail.com>
To: Vik Fearing <vik@postgresfriends.org>
Cc: Alexandra Wang <alexandra.wang.oss@gmail.com>, Mark Dilger <mark.dilger@enterprisedb.com>,
Matheus Alcantara <matheusssilv97@gmail.com>, Peter Eisentraut <peter@eisentraut.org>,
Andrew Dunstan <andrew@dunslane.net>, Nikita Glukhov <glukhov.n.a@gmail.com>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>, "David E. Wheeler" <david@justatheory.com>,
jian he <jian.universality@gmail.com>
Date: 2025-04-23T16:54:36Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add test coverage for indirection transformation
- 64492917280a 19 (unreleased) landed
-
Fix typo in comment
- 81a61fde84ff 19 (unreleased) landed
-
Implementation of subscripting for jsonb
- 676887a3b0b8 14.0 cited
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/