OSDN Git Service

Allow pg_upgrade with PGCLIENTENCODING set
authorPeter Eisentraut <peter_e@gmx.net>
Thu, 7 Apr 2011 16:22:34 +0000 (19:22 +0300)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 7 Apr 2011 16:24:47 +0000 (19:24 +0300)
This used to work, but since PGCLIENTENCODING is now a connection
option variable, pg_upgrade would prevent it.

contrib/pg_upgrade/server.c

index b0df99c..a7d5787 100644 (file)
@@ -326,21 +326,26 @@ check_for_libpq_envvars(void)
 
        /* Get valid libpq env vars from the PQconndefaults function */
 
-       start = option = PQconndefaults();
+       start = PQconndefaults();
 
-       while (option->keyword != NULL)
+       for (option = start; option->keyword != NULL; option++)
        {
-               const char *value;
-
-               if (option->envvar && (value = getenv(option->envvar)) && strlen(value) > 0)
+               if (option->envvar)
                {
-                       found = true;
+                       const char *value;
 
-                       pg_log(PG_WARNING,
-                                  "libpq env var %-20s is currently set to: %s\n", option->envvar, value);
-               }
+                       if (strcmp(option->envvar, "PGCLIENTENCODING") == 0)
+                               continue;
 
-               option++;
+                       value = getenv(option->envvar);
+                       if (value && strlen(value) > 0)
+                       {
+                               found = true;
+
+                               pg_log(PG_WARNING,
+                                          "libpq env var %-20s is currently set to: %s\n", option->envvar, value);
+                       }
+               }
        }
 
        /* Free the memory that libpq allocated on our behalf */