diff options
Diffstat (limited to 'src/backend/utils/fmgr/dfmgr.c')
-rw-r--r-- | src/backend/utils/fmgr/dfmgr.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c index 96fd9d22685..cc1a5200705 100644 --- a/src/backend/utils/fmgr/dfmgr.c +++ b/src/backend/utils/fmgr/dfmgr.c @@ -331,6 +331,21 @@ incompatible_module_error(const char *libname, } /* + * Similarly, if the ABI extra field doesn't match, error out. Other + * fields below might also mismatch, but that isn't useful information if + * you're using the wrong product altogether. + */ + if (strcmp(module_magic_data->abi_extra, magic_data.abi_extra) != 0) + { + ereport(ERROR, + (errmsg("incompatible library \"%s\": ABI mismatch", + libname), + errdetail("Server has ABI \"%s\", library has \"%s\".", + magic_data.abi_extra, + module_magic_data->abi_extra))); + } + + /* * Otherwise, spell out which fields don't agree. * * XXX this code has to be adjusted any time the set of fields in a magic |