Remove -o option to postmaster
authorMagnus Hagander <magnus@hagander.net>
Tue, 10 Nov 2020 12:08:21 +0000 (13:08 +0100)
committerMagnus Hagander <magnus@hagander.net>
Tue, 10 Nov 2020 12:15:01 +0000 (13:15 +0100)
This option was declared obsolete many years ago.

Reviewed-By: Tom Lane
Discussion: https://postgr.es/m/CABUevEyOE=9CQwZm2j=vwP5+6OLCSoxn9pBjK8gyRdkTzMfqtQ@mail.gmail.com

doc/src/sgml/ref/postgres-ref.sgml
src/backend/main/main.c
src/backend/postmaster/postmaster.c
src/backend/tcop/postgres.c

index fda678e345c846478473fc092ae5bc320ec899c2..4aaa7abe1a28642115795521ac3fcc44749f88cf 100644 (file)
@@ -280,32 +280,6 @@ PostgreSQL documentation
       </listitem>
      </varlistentry>
 
-     <varlistentry>
-      <term><option>-o <replaceable class="parameter">extra-options</replaceable></option></term>
-      <listitem>
-       <para>
-        The command-line-style arguments specified in <replaceable
-        class="parameter">extra-options</replaceable> are passed to
-        all server processes started by this
-        <command>postgres</command> process.
-       </para>
-
-       <para>
-        Spaces within <replaceable class="parameter">extra-options</replaceable> are
-        considered to separate arguments, unless escaped with a backslash
-        (<literal>\</literal>); write <literal>\\</literal> to represent a literal
-        backslash.  Multiple arguments can also be specified via multiple
-        uses of <option>-o</option>.
-       </para>
-
-       <para>
-        The use of this option is obsolete; all command-line options
-        for server processes can be specified directly on the
-        <command>postgres</command> command line.
-       </para>
-      </listitem>
-     </varlistentry>
-
      <varlistentry>
       <term><option>-p <replaceable class="parameter">port</replaceable></option></term>
       <listitem>
index a4dd233c7f9226b2af88436ae32a18d2570afc6e..b6e512883269017aa1e3e1bbf9bf3fd008454762 100644 (file)
@@ -323,7 +323,6 @@ help(const char *progname)
        printf(_("  -l                 enable SSL connections\n"));
 #endif
        printf(_("  -N MAX-CONNECT     maximum number of allowed connections\n"));
-       printf(_("  -o OPTIONS         pass \"OPTIONS\" to each server process (obsolete)\n"));
        printf(_("  -p PORT            port number to listen on\n"));
        printf(_("  -s                 show statistics after each query\n"));
        printf(_("  -S WORK-MEM        set amount of memory for sorts (in kB)\n"));
index 959e3b88738189cc6bad5b975207a8d60e9ca959..f6d9b0fa8b660be17e9d5fab10bf6598b06e9fe5 100644 (file)
 #include "libpq/libpq.h"
 #include "libpq/pqformat.h"
 #include "libpq/pqsignal.h"
-#include "miscadmin.h"
 #include "pg_getopt.h"
 #include "pgstat.h"
 #include "port/pg_bswap.h"
@@ -219,12 +218,6 @@ int                        ReservedBackends;
 /* The socket(s) we're listening to. */
 #define MAXLISTEN      64
 static pgsocket ListenSocket[MAXLISTEN];
-
-/*
- * Set by the -o option
- */
-static char ExtraOptions[MAXPGPATH];
-
 /*
  * These globals control the behavior of the postmaster in case some
  * backend dumps core.  Normally, it kills all peers of the dead backend
@@ -537,7 +530,6 @@ typedef struct
 #endif
        char            my_exec_path[MAXPGPATH];
        char            pkglib_path[MAXPGPATH];
-       char            ExtraOptions[MAXPGPATH];
 } BackendParameters;
 
 static void read_backend_variables(char *id, Port *port);
@@ -694,7 +686,7 @@ PostmasterMain(int argc, char *argv[])
         * tcop/postgres.c (the option sets should not conflict) and with the
         * common help() function in main/main.c.
         */
-       while ((opt = getopt(argc, argv, "B:bc:C:D:d:EeFf:h:ijk:lN:nOo:Pp:r:S:sTt:W:-:")) != -1)
+       while ((opt = getopt(argc, argv, "B:bc:C:D:d:EeFf:h:ijk:lN:nOPp:r:S:sTt:W:-:")) != -1)
        {
                switch (opt)
                {
@@ -773,13 +765,6 @@ PostmasterMain(int argc, char *argv[])
                                SetConfigOption("allow_system_table_mods", "true", PGC_POSTMASTER, PGC_S_ARGV);
                                break;
 
-                       case 'o':
-                               /* Other options to pass to the backend on the command line */
-                               snprintf(ExtraOptions + strlen(ExtraOptions),
-                                                sizeof(ExtraOptions) - strlen(ExtraOptions),
-                                                " %s", optarg);
-                               break;
-
                        case 'P':
                                SetConfigOption("ignore_system_indexes", "true", PGC_POSTMASTER, PGC_S_ARGV);
                                break;
@@ -4489,48 +4474,11 @@ BackendInitialize(Port *port)
 static void
 BackendRun(Port *port)
 {
-       char      **av;
-       int                     maxac;
-       int                     ac;
-       int                     i;
+       char       *av[2];
+       const int       ac = 1;
 
-       /*
-        * Now, build the argv vector that will be given to PostgresMain.
-        *
-        * The maximum possible number of commandline arguments that could come
-        * from ExtraOptions is (strlen(ExtraOptions) + 1) / 2; see
-        * pg_split_opts().
-        */
-       maxac = 2;                                      /* for fixed args supplied below */
-       maxac += (strlen(ExtraOptions) + 1) / 2;
-
-       av = (char **) MemoryContextAlloc(TopMemoryContext,
-                                                                         maxac * sizeof(char *));
-       ac = 0;
-
-       av[ac++] = "postgres";
-
-       /*
-        * Pass any backend switches specified with -o on the postmaster's own
-        * command line.  We assume these are secure.
-        */
-       pg_split_opts(av, &ac, ExtraOptions);
-
-       av[ac] = NULL;
-
-       Assert(ac < maxac);
-
-       /*
-        * Debug: print arguments being passed to backend
-        */
-       ereport(DEBUG3,
-                       (errmsg_internal("%s child[%d]: starting with (",
-                                                        progname, (int) getpid())));
-       for (i = 0; i < ac; ++i)
-               ereport(DEBUG3,
-                               (errmsg_internal("\t%s", av[i])));
-       ereport(DEBUG3,
-                       (errmsg_internal(")")));
+       av[0] = "postgres";
+       av[1] = NULL;
 
        /*
         * Make sure we aren't in PostmasterContext anymore.  (We can't delete it
@@ -6253,8 +6201,6 @@ save_backend_variables(BackendParameters *param, Port *port,
 
        strlcpy(param->pkglib_path, pkglib_path, MAXPGPATH);
 
-       strlcpy(param->ExtraOptions, ExtraOptions, MAXPGPATH);
-
        return true;
 }
 
@@ -6485,8 +6431,6 @@ restore_backend_variables(BackendParameters *param, Port *port)
 
        strlcpy(pkglib_path, param->pkglib_path, MAXPGPATH);
 
-       strlcpy(ExtraOptions, param->ExtraOptions, MAXPGPATH);
-
        /*
         * We need to restore fd.c's counts of externally-opened FDs; to avoid
         * confusion, be sure to do this after restoring max_safe_fds.  (Note:
index 411cfadbff35bfff41b7d9b2fb6d240b1a5fb0f9..7c5f7c775b9329fe6cdcc77f0955a846cfd622e5 100644 (file)
@@ -3554,7 +3554,7 @@ process_postgres_switches(int argc, char *argv[], GucContext ctx,
         * postmaster/postmaster.c (the option sets should not conflict) and with
         * the common help() function in main/main.c.
         */
-       while ((flag = getopt(argc, argv, "B:bc:C:D:d:EeFf:h:ijk:lN:nOo:Pp:r:S:sTt:v:W:-:")) != -1)
+       while ((flag = getopt(argc, argv, "B:bc:C:D:d:EeFf:h:ijk:lN:nOPp:r:S:sTt:v:W:-:")) != -1)
        {
                switch (flag)
                {
@@ -3632,10 +3632,6 @@ process_postgres_switches(int argc, char *argv[], GucContext ctx,
                                SetConfigOption("allow_system_table_mods", "true", ctx, gucsource);
                                break;
 
-                       case 'o':
-                               errs++;
-                               break;
-
                        case 'P':
                                SetConfigOption("ignore_system_indexes", "true", ctx, gucsource);
                                break;