Re: SQL/JSON features for v15
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: "Jonathan S. Katz" <jkatz@postgresql.org>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Andrew Dunstan <andrew@dunslane.net>, Tom Lane <tgl@sss.pgh.pa.us>, Nikita Glukhov <n.gluhov@postgrespro.ru>, Michael Paquier <michael@paquier.xyz>,
John Naylor <john.naylor@enterprisedb.com>, Amit Langote <amitlangote09@gmail.com>
Date: 2022-08-16T13:55:14Z
Lists: pgsql-hackers
On Mon, Aug 15, 2022 at 6:39 PM Andres Freund <andres@anarazel.de> wrote: > I don't think it's sane from a performance view to start a subtransaction for > every coercion, particularly because most coercion paths will never trigger an > error, leaving things like out-of-memory or interrupts aside. And those are > re-thrown by ExecEvalJsonExprSubtrans(). A quick and dirty benchmark shows > ERROR ON ERROR nearly 2xing speed. I'm worried about the system impact of > using subtransactions this heavily, it's not exactly the best performing > system - the only reason it's kind of ok here is that it's going to be very > rare to allocate a subxid, I think. I agree. It kinda surprises me that we thought it was OK to commit something that uses that many subtransactions. I feel like that's going to cause people to hose themselves in ways that we can't really do anything about. Like they'll test it out, it will work, and then when they put it into production, they'll have constant wraparound issues for which the only real solution is to not use the feature they relied on to build the application. -- 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