Re: Add Postgres module info

Yurii Rashkovskii <yrashk@omnigres.com>

From: Yurii Rashkovskii <yrashk@omnigres.com>
To: Andrei Lepikhov <lepihov@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2024-12-24T03:42:49Z
Lists: pgsql-hackers
On Mon, Dec 16, 2024 at 12:02 PM Andrei Lepikhov <lepihov@gmail.com> wrote:

> On 12/13/24 10:17, Tom Lane wrote:
> > Andrei Lepikhov <lepihov@gmail.com> writes:
> >> On 12/12/24 21:02, Yurii Rashkovskii wrote:
> >>> 2. Any reasons to dictate MAJ.MIN format? With semantic versioning
> >>> abound, it's rather common to use MAJ.MIN.PATCH.
> >
> >> Okay, thanks; that's a good catch. I wonder how to follow these rules
> >> with a static fixed-sized structure. I would like to read about any
> >> suggestions and implementation examples.
> >
> > 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.
>

I've reviewed the patch, and it is great that you support more flexible
versioning now. I am just wondering a bit about the case where
`minfo->name` can be `NULL` but `minfo->version` isn't, or where both are
`NULL` – should we skip any of these?

Commits

  1. Avoid mixing designated and non-designated field initializers.

  2. Use PG_MODULE_MAGIC_EXT in our installable shared libraries.

  3. Introduce PG_MODULE_MAGIC_EXT macro.