Fix pg_regress to print the correct postmaster address on Windows.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 4 Mar 2022 18:23:58 +0000 (13:23 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 4 Mar 2022 18:23:58 +0000 (13:23 -0500)
pg_regress reported "Unix socket" as the default location whenever
HAVE_UNIX_SOCKETS is defined.  However, that's not been accurate
on Windows since 8f3ec75de.  Update this logic to match what libpq
actually does now.

This is just cosmetic, but still it's potentially misleading.
Back-patch to v13 where 8f3ec75de came in.

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

src/interfaces/libpq/fe-connect.c
src/test/regress/pg_regress.c

index 1c5a2b43e99a82e327bdfa6f5715cc9150b2cb97..cf554d389fa9ae9256bf9ec220370526b5abd32f 100644 (file)
@@ -1115,6 +1115,11 @@ connectOptions2(PGconn *conn)
                {
                        if (ch->host)
                                free(ch->host);
+
+                       /*
+                        * This bit selects the default host location.  If you change
+                        * this, see also pg_regress.
+                        */
 #ifdef HAVE_UNIX_SOCKETS
                        if (DEFAULT_PGSOCKET_DIR[0])
                        {
index db8427dd9b572544097182daed32aa2f5e249edb..982801e029d585ef92e59b93240a01287934c9d8 100644 (file)
@@ -746,10 +746,16 @@ initialize_environment(void)
                 */
                pghost = getenv("PGHOST");
                pgport = getenv("PGPORT");
-#ifndef HAVE_UNIX_SOCKETS
                if (!pghost)
-                       pghost = "localhost";
+               {
+                       /* Keep this bit in sync with libpq's default host location: */
+#ifdef HAVE_UNIX_SOCKETS
+                       if (DEFAULT_PGSOCKET_DIR[0])
+                                /* do nothing, we'll print "Unix socket" below */ ;
+                       else
 #endif
+                               pghost = "localhost";   /* DefaultHost in fe-connect.c */
+               }
 
                if (pghost && pgport)
                        printf(_("(using postmaster on %s, port %s)\n"), pghost, pgport);