Re: Special-case executor expression steps for common combinations
Daniel Gustafsson <daniel@yesql.se>
From: Daniel Gustafsson <daniel@yesql.se>
To: Andreas Karlsson <andreas@proxel.se>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Andres Freund <andres@anarazel.de>
Date: 2024-09-10T08: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 special case fast-paths for strict functions
- d35d32d7112b 18.0 landed
-
Replace EEOP_DONE with special steps for return/no return
- 8dd7c7cd0a26 18.0 landed
Attachments
- v3-0001-Replace-EEOP_DONE-with-special-steps-for-return-n.patch (application/octet-stream) patch v3-0001
- v3-0002-Add-special-case-fast-paths-for-strict-functions.patch (application/octet-stream) patch v3-0002
> On 22 Jul 2024, at 23:25, Andreas Karlsson <andreas@proxel.se> wrote: > > I have bench marked the two patches now and failed to measure any speedup or slowdown from the first patch (removing return) but I think it is a good idea anyway. > > For the second patch (optimize strict) I managed to measure a ~1% speed up for the following query "SELECT sum(x + y + 1) FROM t;" over one million rows. That's expected, this is mostly about refactoring the code to simplifying the JITed code (and making tiny strides towards JIT expression caching). > I would say both patches are ready for committer modulo my proposed style fixes. I am a bit wary about removing the out_error label and goto since it may open up for reports from static analyzers about control reaching the end of a non-void function without a return. The other change has been incorporated. The attached v3 is a rebase to handle executor changes done since v2, with the above mentioned fix as well. If there are no objections I think we should apply this version. -- Daniel Gustafsson