Should we move the resowner field from JitContext to LLVMJitContext?
Andreas Karlsson <andreas@proxel.se>
From: Andreas Karlsson <andreas@proxel.se>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Heikki Linnakangas <hlinnaka@iki.fi>
Date: 2024-06-05T08:19:01Z
Lists: pgsql-hackers
Attachments
- 0001-Move-resowner-from-common-JitContext-to-LLVM-specifi.patch (text/x-patch) patch 0001
Hi, I am implementing my own JIT plugin (based on Cranelift) for PostgreSQL to learn more about the JIT and noticed an API change in PostgreSQL 17. When Heikki made the resource owners extensible in commit b8bff07daa85c837a2747b4d35cd5a27e73fb7b2 the API for JIT plugins changed when ResourceOwnerForgetJIT() was moved from the generic JIT code to the LLVM specific JIT code so now the resowner field of the context is only used by the code of the LLVM plugin. Maybe a bit late in the release cycle but should we make the resowner field specific to the LLVM code too now that we already are breaking the API? I personally do not like having a LLVM JIT specific field in the common struct. Code is easier to understand if things are local. Granted most JIT engines will likely need similar infrastructure but just providing the struct field and nothing else does not seem very helpful. See the attached patch. Andreas
Commits
-
Move resowner from common JitContext to LLVM specific
- b0a8a7ddd3fb 17.0 landed
- 5784a493f14e 18.0 landed
-
Make ResourceOwners more easily extensible.
- b8bff07daa85 17.0 cited