Remove -o option to postmaster
authorMagnus Hagander <[email protected]>
Tue, 10 Nov 2020 12:08:21 +0000 (13:08 +0100)
committerMagnus Hagander <[email protected]>
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;