From d2e4bf688e16f95d180b68b7cbb7881b12434dba Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Tue, 10 Nov 2020 13:08:21 +0100 Subject: [PATCH] Remove -o option to postmaster 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 | 26 ------------ src/backend/main/main.c | 1 - src/backend/postmaster/postmaster.c | 66 +++-------------------------- src/backend/tcop/postgres.c | 6 +-- 4 files changed, 6 insertions(+), 93 deletions(-) diff --git a/doc/src/sgml/ref/postgres-ref.sgml b/doc/src/sgml/ref/postgres-ref.sgml index fda678e345..4aaa7abe1a 100644 --- a/doc/src/sgml/ref/postgres-ref.sgml +++ b/doc/src/sgml/ref/postgres-ref.sgml @@ -280,32 +280,6 @@ PostgreSQL documentation - - - - - The command-line-style arguments specified in extra-options are passed to - all server processes started by this - postgres process. - - - - Spaces within extra-options are - considered to separate arguments, unless escaped with a backslash - (\); write \\ to represent a literal - backslash. Multiple arguments can also be specified via multiple - uses of . - - - - The use of this option is obsolete; all command-line options - for server processes can be specified directly on the - postgres command line. - - - - diff --git a/src/backend/main/main.c b/src/backend/main/main.c index a4dd233c7f..b6e5128832 100644 --- a/src/backend/main/main.c +++ b/src/backend/main/main.c @@ -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")); diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 959e3b8873..f6d9b0fa8b 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -105,7 +105,6 @@ #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: diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 411cfadbff..7c5f7c775b 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -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;