]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Allow initdb to complete on systems without "locale" command
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 17 Nov 2022 11:12:11 +0000 (12:12 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 17 Nov 2022 11:12:11 +0000 (12:12 +0100)
This partially reverts 2fe3bdbd691a5d11626308e7d660440be6c210c8, which
added an error check on the "locale -a" execution.  This is removed
again, adding a comment explaining why.  We already had code that
shows a warning if no system locales could be found, which should be
sufficient for feedback to the user.

Discussion: https://www.postgresql.org/message-id/flat/b2b491d1-3b36-15b9-6910-5b5540b27f5c%40enterprisedb.com

src/backend/commands/collationcmds.c

index e1429c7bf5fea3d24f578c6f714bec43de09eb23..81e54e0ce62ce3ed3a1e85f31c806facfb153e02 100644 (file)
@@ -640,7 +640,6 @@ pg_import_system_collations(PG_FUNCTION_ARGS)
                int                     naliases,
                                        maxaliases,
                                        i;
-               int                     pclose_rc;
 
                /* expansible array of aliases */
                maxaliases = 100;
@@ -747,15 +746,13 @@ pg_import_system_collations(PG_FUNCTION_ARGS)
                        }
                }
 
-               pclose_rc = ClosePipeStream(locale_a_handle);
-               if (pclose_rc != 0)
-               {
-                       ereport(ERROR,
-                                       (errcode_for_file_access(),
-                                        errmsg("could not execute command \"%s\": %s",
-                                                       "locale -a",
-                                                       wait_result_to_str(pclose_rc))));
-               }
+               /*
+                * We don't check the return value of this, because we want to support
+                * the case where there "locale" command does not exist.  (This is
+                * unusual but can happen on minimalized Linux distributions, for
+                * example.)  We will warn below if no locales could be found.
+                */
+               ClosePipeStream(locale_a_handle);
 
                /*
                 * Before processing the aliases, sort them by locale name.  The point