Hi, On 2026-01-25 18:52:37 +0100, Jelte Fennema-Nio wrote: > On Sun Jan 25, 2026 at 5:50 PM CET, Andres Freund wrote: > > We were going for designated > > initializers for a reason, namely that we expect more arguments to be added > > over time and perhaps eventually also to remove some. And this will just > > lead > > to that being harder because we have to worry about C++ extensions. > > Adding new arguments (aka fields) should cause no problems. Assuming > we'd add them at the end of the Pg_magic_struct definition. Removing > ones seems like even for C you'd need different PG_MODULE_MAGIC_EXT > invocations depending on PG_VERSION_NUM. I don't see how using > positional args would make that harder.
Named args make that easier in two ways: First, only extensions using the to-be-removed option will fail. Second, removal of options reliably generates errors, rather than bogusly use one field for another, just because the types are compatible. Greetings, Andres Freund
