When producing a forked version of PostgreSQL, there is no straightforward way to enforce that users don't accidentally load modules built for the non-forked (standard, community) version. You can only distinguish by PostgreSQL major version and a few compile-time settings. (see internal_load_library(), Pg_magic_struct) Depending on the details, mixing and matching might even work, until it doesn't, so this is a bad experience.

I'm thinking about adding two more int fields to Pg_magic_struct: a product or vendor magic number, and an ABI version that can be used freely within a product/vendor.

Would anyone else have use for this?  Any thoughts?


Reply via email to