Re: PG 15 (and to a smaller degree 14) regression due to ExprEvalStep size
Andrew Dunstan <andrew@dunslane.net>
Attachments
- 0001-in-JsonExprState-just-store-a-pointer-to-the-input-F.patch (text/x-patch) patch 0001
- 0002-Evaluate-various-JsonExpr-sub-expressions-using-pare.patch (text/x-patch) patch 0002
- 0003-Use-one-ExprState-to-implement-JsonItemCoercions.patch (text/x-patch) patch 0003
On 2022-07-15 Fr 17:07, Andres Freund wrote: > Hi, > > On 2022-07-08 17:05:49 -0400, Andrew Dunstan wrote: >> On 2022-07-05 Tu 15:04, Andrew Dunstan wrote: >>> On 2022-07-05 Tu 14:36, Andres Freund wrote: >>>>>> I think Andrew's beta 2 comment was more about my other architectural >>>>>> complains around the json expression eval stuff. >>>>> Right. That's being worked on but it's not going to be a mechanical fix. >>>> Any updates here? >>> Not yet. A colleague and I are working on it. I'll post a status this >>> week if we can't post a fix. >> We're still working on it. We've made substantial progress but there are >> some tests failing that we need to fix. > I think we need to resolve this soon - or consider the alternatives. A lot of > the new json stuff doesn't seem fully baked, so I'm starting to wonder if we > have to consider pushing it a release further down. > > Perhaps you could post your current state? I might be able to help resolving > some of the problems. Ok. Here is the state of things. This has proved to be rather more intractable than I expected. Almost all the legwork here has been done by Amit Langote, for which he deserves both my thanks and considerable credit, but I take responsibility for it. I just discovered today that this scheme is failing under "force_parallel_mode = regress". I have as yet no idea if that can be fixed simply or not. Apart from that I think the main outstanding issue is to fill in the gaps in llvm_compile_expr(). If you have help you can offer that would be very welcome. I'd still very much like to get this done, but if the decision is we've run out of time I'll be sad but understand. cheers andrew -- Andrew Dunstan EDB: https://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
-
Add static assertion ensuring sizeof(ExprEvalStep) <= 64 bytes
- 78be04e4c672 16.0 landed
-
Remove size increase in ExprEvalStep caused by hashed saops
- 30efc3b5a364 15.0 landed
- fe3caa143937 16.0 landed
-
pgstat: reduce timer overhead by leaving timer running.
- 4a37527fde3c 15.0 landed
- 056cc366fafa 16.0 landed
-
expression eval: Fix EEOP_JSON_CONSTRUCTOR and EEOP_JSONEXPR size.
- 5a1ab894f758 15.0 landed
- 67b26703b415 16.0 landed
-
SQL/JSON query functions
- 1a36bc9dba8e 15.0 cited
-
Speedup ScalarArrayOpExpr evaluation
- 50e17ad281b8 14.0 cited