Re: SQL/JSON features for v15
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: "Jonathan S. Katz" <jkatz@postgresql.org>
Cc: Nikita Glukhov <n.gluhov@postgrespro.ru>,
Andres Freund <andres@anarazel.de>, 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-23T14:51:04Z
Lists: pgsql-hackers
On Mon, Aug 22, 2022 at 9:52 PM Jonathan S. Katz <jkatz@postgresql.org> wrote: > > Andres, Robert: Do these changes address your concerns about the use of > > substransactions and reduce the risk of xid wraparound? > > Andres, Andrew, Amit, Robert -- as you have either worked on this or > expressed opinions -- any thoughts on this current patch set? I do not think that using subtransactions as part of the expression evaluation process is a sound idea pretty much under any circumstances. Maybe if the subtransations aren't commonly created and don't usually get XIDs there wouldn't be a big problem in practice, but it's an awfully heavyweight operation to be done inside expression evaluation even in corner cases. I think that if we need to make certain operations that would throw errors not throw errors, we need to refactor interfaces until it's possible to return an error indicator up to the appropriate level, not just let the error be thrown and catch it. The patches in question are thousands of lines of new code that I simply do not have time or interest to review in detail. I didn't commit this feature, or write this feature, or review this feature. I'm not familiar with any of the code. To really know what's going on here, I would need to review not only the new patches but also all the code in the original commits, and probably some of the preexisting code from before those commits that I have never examined in the past. That would take me quite a few months even if I had absolutely nothing else to do. And because I haven't been involved in this patch set in any way, I don't think it's really my responsibility. At the end of the day, the RMT is going to have to take a call here. It seems to me that Andres's concerns about code quality and lack of comments are probably somewhat legitimate, and in particular I do not think the use of subtransactions is a good idea. I also don't think that trying to fix those problems or generally improve the code by committing thousands of lines of new code in August when we're targeting a release in September or October is necessarily a good idea. But I'm also not in a position to say that the project is going to be irreparably damaged if we just ship what we've got, perhaps after fixing the most acute problems that we currently know about. This is after all relatively isolated from the rest of the system. Fixing the stuff that touches the core executor is probably pretty important, but beyond that, the worst thing that happens is the feature sucks and people who try to use it have bad experiences. That would be bad, and might be a sufficient reason to revert, but it's not nearly as bad as, say, the whole system being slow, or data loss for every user, or something like that. And we do have other bad code in the system. Is this a lot worse? I'm not in a position to say one way or the other. -- Robert Haas EDB: http://www.enterprisedb.com
Commits
-
JSON_TABLE: Add support for NESTED paths and columns
- bb766cde63b4 17.0 landed
-
Add basic JSON_TABLE() functionality
- de3600452b61 17.0 landed
-
Add SQL/JSON query functions
- 6185c9737cf4 17.0 landed
-
Add soft error handling to some expression nodes
- aaaf9449ec6b 17.0 landed
-
Adjust populate_record_field() to handle errors softly
- 1edb3b491bee 17.0 landed
-
Refactor code used by jsonpath executor to fetch variables
- faa2b953ba3b 17.0 landed
-
Add more SQL/JSON constructor functions
- 03734a7fed7d 17.0 landed
-
SQL/JSON: support the IS JSON predicate
- 6ee30209a6f1 16.0 landed
-
SQL/JSON: add standard JSON constructor functions
- 7081ac46ace8 16.0 landed
-
Revert SQL/JSON features
- 96ef3237bf74 15.0 landed
- 2f2b18bd3f55 16.0 landed
-
Numeric error suppression in jsonpath
- 16d489b0fe05 12.0 cited