Remove useless code that propagated FrontendProtocol to a backend via a
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 28 Aug 2009 18:23:53 +0000 (18:23 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 28 Aug 2009 18:23:53 +0000 (18:23 +0000)
PostgresMain switch.  In point of fact, FrontendProtocol is already set
in a backend process, since ProcessStartupPacket() is executed inside
the backend --- it hasn't been run by the postmaster for many years.
And if it were, we'd still certainly want FrontendProtocol to be set before
we get as far as PostgresMain, so that startup errors get reported in the
right protocol.

-v might have some future use in standalone backends, so I didn't go so
far as to remove the switch outright.

Also, initialize FrontendProtocol to 0 not PG_PROTOCOL_LATEST.  The only
likely result of presetting it like that is to mask failure-to-set-it
mistakes.

src/backend/postmaster/postmaster.c
src/backend/tcop/postgres.c
src/backend/utils/init/globals.c

index 785668e7f091893f39395f56889d948baaf93918..5884e2dc076e2fa68d76a5083ed6d80227725548 100644 (file)
@@ -3353,7 +3353,6 @@ BackendRun(Port *port)
        int                     ac;
        long            secs;
        int                     usecs;
-       char            protobuf[32];
        int                     i;
 
        /*
@@ -3397,10 +3396,6 @@ BackendRun(Port *port)
         */
        split_opts(av, &ac, ExtraOptions);
 
-       /* Tell the backend what protocol the frontend is using. */
-       snprintf(protobuf, sizeof(protobuf), "-v%u", port->proto);
-       av[ac++] = protobuf;
-
        /*
         * Tell the backend it is being called from the postmaster, and which
         * database to use.  -y marks the end of secure switches.
index 2beb148d98f274f2941bef1624661009329342a1..a77abdcfc56a44819dfdb5d2f9f0f17523a66e35 100644 (file)
@@ -3075,6 +3075,13 @@ PostgresMain(int argc, char *argv[], const char *username)
                                }
 
                        case 'v':
+                               /*
+                                * -v is no longer used in normal operation, since
+                                * FrontendProtocol is already set before we get here.
+                                * We keep the switch only for possible use in standalone
+                                * operation, in case we ever support using normal FE/BE
+                                * protocol with a standalone backend.
+                                */
                                if (secure)
                                        FrontendProtocol = (ProtocolVersion) atoi(optarg);
                                break;
index 962f4ba517b161e6aa6f7cf4266f8cb1d235f56f..a77e5d82bfeebe8ce9b246db105e7e4b3adf0255 100644 (file)
@@ -23,7 +23,7 @@
 #include "storage/backendid.h"
 
 
-ProtocolVersion FrontendProtocol = PG_PROTOCOL_LATEST;
+ProtocolVersion FrontendProtocol;
 
 volatile bool InterruptPending = false;
 volatile bool QueryCancelPending = false;