diff options
author | Peter Eisentraut <peter@eisentraut.org> | 2019-11-29 10:04:45 +0100 |
---|---|---|
committer | Peter Eisentraut <peter@eisentraut.org> | 2019-11-29 10:22:13 +0100 |
commit | c4a7a392ec8f0ff7701d84768080721ff8a7782e (patch) | |
tree | 9db396cfe5a4e7bdce99e19b0f319dad30b3b1e1 | |
parent | 508bf95b767140ec1a339bcb53538d21deb9d995 (diff) | |
download | postgresql-c4a7a392ec8f0ff7701d84768080721ff8a7782e.tar.gz postgresql-c4a7a392ec8f0ff7701d84768080721ff8a7782e.zip |
Make allow_system_table_mods settable at run time
Make allow_system_table_mods settable at run time by superusers. It
was previously postmaster start only.
We don't want to make system catalog DDL wide-open, but there are
occasionally useful things to do like setting reloptions or statistics
on a busy system table, and blocking those doesn't help anyone. Also,
this enables the possibility of writing a test suite for this setting.
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/8b00ea5e-28a7-88ba-e848-21528b632354%402ndquadrant.com
-rw-r--r-- | doc/src/sgml/config.sgml | 8 | ||||
-rw-r--r-- | src/backend/utils/misc/guc.c | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index d4d1fe45cc1..4ec13f3311c 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -9501,9 +9501,11 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' </term> <listitem> <para> - Allows modification of the structure of system tables. - This is used by <command>initdb</command>. - This parameter can only be set at server start. + Allows modification of the structure of system tables as well as + certain other risky actions on system tables. This is otherwise not + allowed even for superusers. Ill-advised use of this setting can + cause irretrievable data loss or seriously corrupt the database + system. Only superusers can change this setting. </para> </listitem> </varlistentry> diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index ba4edde71a3..5fccc9683ee 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -1777,7 +1777,7 @@ static struct config_bool ConfigureNamesBool[] = }, { - {"allow_system_table_mods", PGC_POSTMASTER, DEVELOPER_OPTIONS, + {"allow_system_table_mods", PGC_SUSET, DEVELOPER_OPTIONS, gettext_noop("Allows modifications of the structure of system tables."), NULL, GUC_NOT_IN_SAMPLE |