postgres.git / summary / log / commit / refs

commit    c4a7a392ec8f0ff7701d84768080721ff8a7782e
Author:   Peter Eisentraut <peter@eisentraut.org>
Date:     Fri Nov 29 09:04:45 2019 +0000
First released in: 13.0

    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


doc/src/sgml/config.sgml | 8 +++++--- 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 [parent: 508bf95b7671]