Re: SQL/JSON features for v15

Jonathan S. Katz <jkatz@postgresql.org>

From: "Jonathan S. Katz" <jkatz@postgresql.org>
To: Andres Freund <andres@anarazel.de>, Nikita Glukhov <n.gluhov@postgrespro.ru>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Andrew Dunstan <andrew@dunslane.net>, Tom Lane <tgl@sss.pgh.pa.us>, Michael Paquier <michael@paquier.xyz>, John Naylor <john.naylor@enterprisedb.com>, Amit Langote <amitlangote09@gmail.com>
Date: 2022-08-17T01:45:06Z
Lists: pgsql-hackers
Hi,

On 8/15/22 10:14 PM, Andres Freund wrote:

> I pushed a few cleanups to https://github.com/anarazel/postgres/commits/json
> while I was hacking on this (ignore that it's based on the meson tree, that's
> just faster for me). Some of them might not be applicable anymore, but it
> might still make sense for you to look at.

With RMT hat on, this appears to be making progress. A few questions / 
comments for the group:

1. Nikita: Did you have a chance to review Andres's changes as well?

2. There seems to be some, though limited, progress on design docs. 
Andres keeps making a point on adding additional comments to the code to 
make it easier to follow. Please do not lose sight of this.

3. Robert raised a point about the use of subtransactions and the 
increased risk of wraparound on busy systems using the SQL/JSON 
features. Do these patches help reduce this risk? I read some clarity on 
the use of subtransactions within the patchset, but want to better 
understand if the risks pointed out are a concern.

Thanks everyone for your work on this so far!

Jonathan

Commits

  1. JSON_TABLE: Add support for NESTED paths and columns

  2. Add basic JSON_TABLE() functionality

  3. Add SQL/JSON query functions

  4. Add soft error handling to some expression nodes

  5. Adjust populate_record_field() to handle errors softly

  6. Refactor code used by jsonpath executor to fetch variables

  7. Add more SQL/JSON constructor functions

  8. SQL/JSON: support the IS JSON predicate

  9. SQL/JSON: add standard JSON constructor functions

  10. Revert SQL/JSON features

  11. Numeric error suppression in jsonpath