Remove no-longer-appropriate special case in psql's \conninfo code.
authorTom Lane
Fri, 3 Aug 2018 16:20:47 +0000 (12:20 -0400)
committerTom Lane
Fri, 3 Aug 2018 16:20:47 +0000 (12:20 -0400)
\conninfo prints the results of PQhost() and some other libpq functions.
It used to override the PQhost() result with the hostaddr parameter if
that'd been given, but that's unhelpful when multiple hosts were listed
in the connection string.  Furthermore, it seems unnecessary in the wake
of commit 1944cdc98, since PQhost does any useful substitution itself.
So let's just remove the extra code and print PQhost()'s result without
any editorialization.

Back-patch to v10, as 1944cdc98 (just) was.

Discussion: https://postgr.es/m/23287.1533227021@sss.pgh.pa.us

src/bin/psql/command.c

index d427488748492815ed77b604fe7a5d99173ba9da..a30a5f8ea0aa6a2afdb345b6e0ae42402fa9a4ae 100644 (file)
@@ -596,25 +596,7 @@ exec_command_conninfo(PsqlScanState scan_state, bool active_branch)
            printf(_("You are currently not connected to a database.\n"));
        else
        {
-           char       *host;
-           PQconninfoOption *connOptions;
-           PQconninfoOption *option;
-
-           host = PQhost(pset.db);
-           /* A usable "hostaddr" overrides the basic sense of host. */
-           connOptions = PQconninfo(pset.db);
-           if (connOptions == NULL)
-           {
-               psql_error("out of memory\n");
-               exit(EXIT_FAILURE);
-           }
-           for (option = connOptions; option && option->keyword; option++)
-               if (strcmp(option->keyword, "hostaddr") == 0)
-               {
-                   if (option->val != NULL && option->val[0] != '\0')
-                       host = option->val;
-                   break;
-               }
+           char       *host = PQhost(pset.db);
 
            /* If the host is an absolute path, the connection is via socket */
            if (is_absolute_path(host))
@@ -624,8 +606,6 @@ exec_command_conninfo(PsqlScanState scan_state, bool active_branch)
                printf(_("You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n"),
                       db, PQuser(pset.db), host, PQport(pset.db));
            printSSLInfo();
-
-           PQconninfoFree(connOptions);
        }
    }