Fix pg_regress to print the correct postmaster address on Windows.
authorTom Lane
Fri, 4 Mar 2022 18:23:58 +0000 (13:23 -0500)
committerTom Lane
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 133b7617bb78dcd468313a63df7e08419ca307aa..709ba152204116a4ccfd358575c2a6ce4c322f42 100644 (file)
@@ -1119,6 +1119,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 05296f7ee1db9bc6c923908f051c698e43227240..27486cf5385188b28a2e833751ccc23b97e0f0ba 100644 (file)
@@ -911,10 +911,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);