]> granicus.if.org Git - postgresql/blobdiff - src/backend/utils/fmgr/dfmgr.c
Fix assorted places in psql to print version numbers >= 10 in new style.
[postgresql] / src / backend / utils / fmgr / dfmgr.c
index f41035d33c8faf6b70b0d26b83fc55556824d89c..6f70813a6deb9f5e6af61a07715948f3803ea512 100644 (file)
@@ -300,14 +300,22 @@ incompatible_module_error(const char *libname,
         * block might not even have the fields we expect.
         */
        if (magic_data.version != module_magic_data->version)
+       {
+               char            library_version[32];
+
+               if (module_magic_data->version >= 1000)
+                       snprintf(library_version, sizeof(library_version), "%d",
+                                        module_magic_data->version / 100);
+               else
+                       snprintf(library_version, sizeof(library_version), "%d.%d",
+                                        module_magic_data->version / 100,
+                                        module_magic_data->version % 100);
                ereport(ERROR,
                                (errmsg("incompatible library \"%s\": version mismatch",
                                                libname),
-                         errdetail("Server is version %d.%d, library is version %d.%d.",
-                                               magic_data.version / 100,
-                                               magic_data.version % 100,
-                                               module_magic_data->version / 100,
-                                               module_magic_data->version % 100)));
+                                errdetail("Server is version %d, library is version %s.",
+                                                  magic_data.version / 100, library_version)));
+       }
 
        /*
         * Otherwise, spell out which fields don't agree.