Re: Add Postgres module info
Andrei Lepikhov <lepihov@gmail.com>
From: Andrei Lepikhov <lepihov@gmail.com>
To: Alexander Korotkov <aekorotkov@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Yurii Rashkovskii <yrashk@omnigres.com>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2025-03-02T18:35:35Z
Lists: pgsql-hackers
On 17/2/2025 02:41, Alexander Korotkov wrote: > On Mon, Dec 16, 2024 at 7:02 AM Andrei Lepikhov <lepihov@gmail.com> wrote: >> On 12/13/24 10:17, Tom Lane wrote: >>> There's nothing stopping a field of the magic block from being >>> a "const char *" pointer to a string literal. >> Ok, See v.2 in attachment. > > Generally, the patch looks good to me. I have couple of questions. > > 1) Is it intended to switch all in-core libraries to use PG_MODULE_MAGIC_EXT()? I haven't such intention. Just wanted to demonstrate how it might work. > 2) Once we have module version information, it looks natural to > specify the required version for dependant objects, e.g. SQL-funcions > implemented in shared libraries. For instance, > CREATE FUNCTION ... AS 'MODULE_PATHNAME' LANGUAGE C module_version >= '1.0'; Just to be clear. You want this stuff to let the core manage situations of stale binaries and throw an error like the following: "No function matches the given name, argument types and module version" Do I understand you correctly? It may make sense, but I can't figure out a use case. Could you describe at least one example? -- regards, Andrei Lepikhov
Commits
-
Avoid mixing designated and non-designated field initializers.
- d66997dfe8fe 18.0 landed
-
Use PG_MODULE_MAGIC_EXT in our installable shared libraries.
- 55527368bd07 18.0 landed
-
Introduce PG_MODULE_MAGIC_EXT macro.
- 9324c8c58065 18.0 landed